diff options
| -rw-r--r-- | meta/lib/oeqa/selftest/wic.py | 142 |
1 files changed, 128 insertions, 14 deletions
diff --git a/meta/lib/oeqa/selftest/wic.py b/meta/lib/oeqa/selftest/wic.py index 52b9538a68..3db00a6bb2 100644 --- a/meta/lib/oeqa/selftest/wic.py +++ b/meta/lib/oeqa/selftest/wic.py | |||
| @@ -37,7 +37,9 @@ class Wic(oeSelfTest): | |||
| 37 | """Wic test class.""" | 37 | """Wic test class.""" |
| 38 | 38 | ||
| 39 | resultdir = "/var/tmp/wic/build/" | 39 | resultdir = "/var/tmp/wic/build/" |
| 40 | alternate_resultdir = "/var/tmp/wic/build/alt/" | ||
| 40 | image_is_ready = False | 41 | image_is_ready = False |
| 42 | wicenv_cache = {} | ||
| 41 | 43 | ||
| 42 | def setUpLocal(self): | 44 | def setUpLocal(self): |
| 43 | """This code is executed before each test method.""" | 45 | """This code is executed before each test method.""" |
| @@ -56,10 +58,16 @@ class Wic(oeSelfTest): | |||
| 56 | 58 | ||
| 57 | rmtree(self.resultdir, ignore_errors=True) | 59 | rmtree(self.resultdir, ignore_errors=True) |
| 58 | 60 | ||
| 61 | @testcase(1552) | ||
| 62 | def test_version(self): | ||
| 63 | """Test wic --version""" | ||
| 64 | self.assertEqual(0, runCmd('wic --version').status) | ||
| 65 | |||
| 59 | @testcase(1208) | 66 | @testcase(1208) |
| 60 | def test_help(self): | 67 | def test_help(self): |
| 61 | """Test wic --help""" | 68 | """Test wic --help and wic -h""" |
| 62 | self.assertEqual(0, runCmd('wic --help').status) | 69 | self.assertEqual(0, runCmd('wic --help').status) |
| 70 | self.assertEqual(0, runCmd('wic -h').status) | ||
| 63 | 71 | ||
| 64 | @testcase(1209) | 72 | @testcase(1209) |
| 65 | def test_createhelp(self): | 73 | def test_createhelp(self): |
| @@ -71,6 +79,16 @@ class Wic(oeSelfTest): | |||
| 71 | """Test wic list --help""" | 79 | """Test wic list --help""" |
| 72 | self.assertEqual(0, runCmd('wic list --help').status) | 80 | self.assertEqual(0, runCmd('wic list --help').status) |
| 73 | 81 | ||
| 82 | @testcase(1553) | ||
| 83 | def test_help_create(self): | ||
| 84 | """Test wic help create""" | ||
| 85 | self.assertEqual(0, runCmd('wic help create').status) | ||
| 86 | |||
| 87 | @testcase(1554) | ||
| 88 | def test_help_list(self): | ||
| 89 | """Test wic help list""" | ||
| 90 | self.assertEqual(0, runCmd('wic help list').status) | ||
| 91 | |||
| 74 | @testcase(1215) | 92 | @testcase(1215) |
| 75 | def test_help_overview(self): | 93 | def test_help_overview(self): |
| 76 | """Test wic help overview""" | 94 | """Test wic help overview""" |
| @@ -86,6 +104,24 @@ class Wic(oeSelfTest): | |||
| 86 | """Test wic help kickstart""" | 104 | """Test wic help kickstart""" |
| 87 | self.assertEqual(0, runCmd('wic help kickstart').status) | 105 | self.assertEqual(0, runCmd('wic help kickstart').status) |
| 88 | 106 | ||
| 107 | @testcase(1555) | ||
| 108 | def test_list_images(self): | ||
| 109 | """Test wic list images""" | ||
| 110 | self.assertEqual(0, runCmd('wic list images').status) | ||
| 111 | |||
| 112 | @testcase(1556) | ||
| 113 | def test_list_source_plugins(self): | ||
| 114 | """Test wic list source-plugins""" | ||
| 115 | self.assertEqual(0, runCmd('wic list source-plugins').status) | ||
| 116 | |||
| 117 | @testcase(1557) | ||
| 118 | def test_listed_images_help(self): | ||
| 119 | """Test wic listed images help""" | ||
| 120 | output = runCmd('wic list images').output | ||
| 121 | imagelist = [line.split()[0] for line in output.splitlines()] | ||
| 122 | for image in imagelist: | ||
| 123 | self.assertEqual(0, runCmd('wic list %s help' % image).status) | ||
| 124 | |||
| 89 | @testcase(1213) | 125 | @testcase(1213) |
| 90 | def test_unsupported_subcommand(self): | 126 | def test_unsupported_subcommand(self): |
| 91 | """Test unsupported subcommand""" | 127 | """Test unsupported subcommand""" |
| @@ -99,8 +135,8 @@ class Wic(oeSelfTest): | |||
| 99 | 135 | ||
| 100 | @testcase(1211) | 136 | @testcase(1211) |
| 101 | def test_build_image_name(self): | 137 | def test_build_image_name(self): |
| 102 | """Test wic create directdisk --image-name core-image-minimal""" | 138 | """Test wic create directdisk --image-name=core-image-minimal""" |
| 103 | cmd = "wic create directdisk --image-name core-image-minimal" | 139 | cmd = "wic create directdisk --image-name=core-image-minimal" |
| 104 | self.assertEqual(0, runCmd(cmd).status) | 140 | self.assertEqual(0, runCmd(cmd).status) |
| 105 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) | 141 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) |
| 106 | 142 | ||
| @@ -162,6 +198,22 @@ class Wic(oeSelfTest): | |||
| 162 | self.assertEqual(0, runCmd(cmd).status) | 198 | self.assertEqual(0, runCmd(cmd).status) |
| 163 | self.assertEqual(1, len(glob(self.resultdir + "sdimage-bootpart-*direct"))) | 199 | self.assertEqual(1, len(glob(self.resultdir + "sdimage-bootpart-*direct"))) |
| 164 | 200 | ||
| 201 | @testcase(1562) | ||
| 202 | def test_alternate_output_dir(self): | ||
| 203 | """Test alternate output directory""" | ||
| 204 | self.assertEqual(0, runCmd("wic create directdisk " | ||
| 205 | "-e core-image-minimal " | ||
| 206 | "-o %s" | ||
| 207 | % self.alternate_resultdir).status) | ||
| 208 | self.assertEqual(1, len(glob(self.alternate_resultdir + | ||
| 209 | "build/directdisk-*.direct"))) | ||
| 210 | self.assertEqual(0, runCmd("wic create mkefidisk -e " | ||
| 211 | "core-image-minimal " | ||
| 212 | "--outdir=%s" | ||
| 213 | % self.alternate_resultdir).status) | ||
| 214 | self.assertEqual(1, len(glob(self.alternate_resultdir + | ||
| 215 | "build/mkefidisk-*direct"))) | ||
| 216 | |||
| 165 | @testcase(1212) | 217 | @testcase(1212) |
| 166 | def test_build_artifacts(self): | 218 | def test_build_artifacts(self): |
| 167 | """Test wic create directdisk providing all artifacts.""" | 219 | """Test wic create directdisk providing all artifacts.""" |
| @@ -188,7 +240,7 @@ class Wic(oeSelfTest): | |||
| 188 | def test_compress_bzip2(self): | 240 | def test_compress_bzip2(self): |
| 189 | """Test compressing an image with bzip2""" | 241 | """Test compressing an image with bzip2""" |
| 190 | self.assertEqual(0, runCmd("wic create directdisk " | 242 | self.assertEqual(0, runCmd("wic create directdisk " |
| 191 | "--image-name core-image-minimal " | 243 | "--image-name=core-image-minimal " |
| 192 | "-c bzip2").status) | 244 | "-c bzip2").status) |
| 193 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct.bz2"))) | 245 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct.bz2"))) |
| 194 | 246 | ||
| @@ -196,22 +248,58 @@ class Wic(oeSelfTest): | |||
| 196 | def test_compress_xz(self): | 248 | def test_compress_xz(self): |
| 197 | """Test compressing an image with xz""" | 249 | """Test compressing an image with xz""" |
| 198 | self.assertEqual(0, runCmd("wic create directdisk " | 250 | self.assertEqual(0, runCmd("wic create directdisk " |
| 199 | "--image-name core-image-minimal " | 251 | "--image-name=core-image-minimal " |
| 200 | "-c xz").status) | 252 | "--compress-with=xz").status) |
| 201 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct.xz"))) | 253 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct.xz"))) |
| 202 | 254 | ||
| 203 | @testcase(1267) | 255 | @testcase(1267) |
| 204 | def test_wrong_compressor(self): | 256 | def test_wrong_compressor(self): |
| 205 | """Test how wic breaks if wrong compressor is provided""" | 257 | """Test how wic breaks if wrong compressor is provided""" |
| 206 | self.assertEqual(2, runCmd("wic create directdisk " | 258 | self.assertEqual(2, runCmd("wic create directdisk " |
| 207 | "--image-name core-image-minimal " | 259 | "--image-name=core-image-minimal " |
| 208 | "-c wrong", ignore_status=True).status) | 260 | "-c wrong", ignore_status=True).status) |
| 209 | 261 | ||
| 262 | @testcase(1558) | ||
| 263 | def test_debug(self): | ||
| 264 | """Test debug""" | ||
| 265 | self.assertEqual(0, runCmd("wic create directdisk " | ||
| 266 | "--image-name=core-image-minimal " | ||
| 267 | "-D").status) | ||
| 268 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) | ||
| 269 | self.assertEqual(0, runCmd("wic create directdisk " | ||
| 270 | "--image-name=core-image-minimal " | ||
| 271 | "--debug").status) | ||
| 272 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) | ||
| 273 | |||
| 274 | @testcase(1563) | ||
| 275 | def test_skip_build_check(self): | ||
| 276 | """Test skip build check""" | ||
| 277 | self.assertEqual(0, runCmd("wic create directdisk " | ||
| 278 | "--image-name=core-image-minimal " | ||
| 279 | "-s").status) | ||
| 280 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) | ||
| 281 | self.assertEqual(0, runCmd("wic create directdisk " | ||
| 282 | "--image-name=core-image-minimal " | ||
| 283 | "--skip-build-check").status) | ||
| 284 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) | ||
| 285 | |||
| 286 | @testcase(1564) | ||
| 287 | def test_build_rootfs(self): | ||
| 288 | """Test build rootfs""" | ||
| 289 | self.assertEqual(0, runCmd("wic create directdisk " | ||
| 290 | "--image-name=core-image-minimal " | ||
| 291 | "-f").status) | ||
| 292 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) | ||
| 293 | self.assertEqual(0, runCmd("wic create directdisk " | ||
| 294 | "--image-name=core-image-minimal " | ||
| 295 | "--build-rootfs").status) | ||
| 296 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct"))) | ||
| 297 | |||
| 210 | @testcase(1268) | 298 | @testcase(1268) |
| 211 | def test_rootfs_indirect_recipes(self): | 299 | def test_rootfs_indirect_recipes(self): |
| 212 | """Test usage of rootfs plugin with rootfs recipes""" | 300 | """Test usage of rootfs plugin with rootfs recipes""" |
| 213 | status = runCmd("wic create directdisk-multi-rootfs " | 301 | status = runCmd("wic create directdisk-multi-rootfs " |
| 214 | "--image-name core-image-minimal " | 302 | "--image-name=core-image-minimal " |
| 215 | "--rootfs rootfs1=core-image-minimal " | 303 | "--rootfs rootfs1=core-image-minimal " |
| 216 | "--rootfs rootfs2=core-image-minimal").status | 304 | "--rootfs rootfs2=core-image-minimal").status |
| 217 | self.assertEqual(0, status) | 305 | self.assertEqual(0, status) |
| @@ -225,9 +313,9 @@ class Wic(oeSelfTest): | |||
| 225 | 'STAGING_DIR_NATIVE', 'IMAGE_ROOTFS')) | 313 | 'STAGING_DIR_NATIVE', 'IMAGE_ROOTFS')) |
| 226 | bbvars['wks'] = "directdisk-multi-rootfs" | 314 | bbvars['wks'] = "directdisk-multi-rootfs" |
| 227 | status = runCmd("wic create %(wks)s " | 315 | status = runCmd("wic create %(wks)s " |
| 228 | "-b %(staging_datadir)s " | 316 | "--bootimg-dir=%(staging_datadir)s " |
| 229 | "-k %(deploy_dir_image)s " | 317 | "--kernel-dir=%(deploy_dir_image)s " |
| 230 | "-n %(staging_dir_native)s " | 318 | "--native-sysroot=%(staging_dir_native)s " |
| 231 | "--rootfs-dir rootfs1=%(image_rootfs)s " | 319 | "--rootfs-dir rootfs1=%(image_rootfs)s " |
| 232 | "--rootfs-dir rootfs2=%(image_rootfs)s" | 320 | "--rootfs-dir rootfs2=%(image_rootfs)s" |
| 233 | % bbvars).status | 321 | % bbvars).status |
| @@ -237,19 +325,30 @@ class Wic(oeSelfTest): | |||
| 237 | @testcase(1496) | 325 | @testcase(1496) |
| 238 | def test_bmap(self): | 326 | def test_bmap(self): |
| 239 | """Test generation of .bmap file""" | 327 | """Test generation of .bmap file""" |
| 328 | cmd = "wic create directdisk -e core-image-minimal -m" | ||
| 329 | status = runCmd(cmd).status | ||
| 330 | self.assertEqual(0, status) | ||
| 331 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct"))) | ||
| 332 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct.bmap"))) | ||
| 240 | cmd = "wic create directdisk -e core-image-minimal --bmap" | 333 | cmd = "wic create directdisk -e core-image-minimal --bmap" |
| 241 | status = runCmd(cmd).status | 334 | status = runCmd(cmd).status |
| 242 | self.assertEqual(0, status) | 335 | self.assertEqual(0, status) |
| 243 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct"))) | 336 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct"))) |
| 244 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct.bmap"))) | 337 | self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct.bmap"))) |
| 245 | 338 | ||
| 339 | def _get_image_env_path(self, image): | ||
| 340 | """Generate and obtain the path to <image>.env""" | ||
| 341 | if image not in self.wicenv_cache: | ||
| 342 | self.assertEqual(0, bitbake('%s -c do_rootfs_wicenv' % image).status) | ||
| 343 | stdir = get_bb_var('STAGING_DIR_TARGET', image) | ||
| 344 | self.wicenv_cache[image] = os.path.join(stdir, 'imgdata') | ||
| 345 | return self.wicenv_cache[image] | ||
| 346 | |||
| 246 | @testcase(1347) | 347 | @testcase(1347) |
| 247 | def test_image_env(self): | 348 | def test_image_env(self): |
| 248 | """Test generation of <image>.env files.""" | 349 | """Test generation of <image>.env files.""" |
| 249 | image = 'core-image-minimal' | 350 | image = 'core-image-minimal' |
| 250 | self.assertEqual(0, bitbake('%s -c do_rootfs_wicenv' % image).status) | 351 | imgdatadir = self._get_image_env_path(image) |
| 251 | stdir = get_bb_var('STAGING_DIR_TARGET', image) | ||
| 252 | imgdatadir = os.path.join(stdir, 'imgdata') | ||
| 253 | 352 | ||
| 254 | basename = get_bb_var('IMAGE_BASENAME', image) | 353 | basename = get_bb_var('IMAGE_BASENAME', image) |
| 255 | self.assertEqual(basename, image) | 354 | self.assertEqual(basename, image) |
| @@ -267,6 +366,21 @@ class Wic(oeSelfTest): | |||
| 267 | self.assertTrue(var in content, "%s is not in .env file" % var) | 366 | self.assertTrue(var in content, "%s is not in .env file" % var) |
| 268 | self.assertTrue(content[var]) | 367 | self.assertTrue(content[var]) |
| 269 | 368 | ||
| 369 | @testcase(1559) | ||
| 370 | def test_image_vars_dir(self): | ||
| 371 | """Test image vars directory selection""" | ||
| 372 | image = 'core-image-minimal' | ||
| 373 | imgenvdir = self._get_image_env_path(image) | ||
| 374 | |||
| 375 | self.assertEqual(0, runCmd("wic create directdisk " | ||
| 376 | "--image-name=%s " | ||
| 377 | "-v %s" | ||
| 378 | % (image, imgenvdir)).status) | ||
| 379 | self.assertEqual(0, runCmd("wic create directdisk " | ||
| 380 | "--image-name=%s " | ||
| 381 | "--vars %s" | ||
| 382 | % (image, imgenvdir)).status) | ||
| 383 | |||
| 270 | @testcase(1351) | 384 | @testcase(1351) |
| 271 | def test_wic_image_type(self): | 385 | def test_wic_image_type(self): |
| 272 | """Test building wic images by bitbake""" | 386 | """Test building wic images by bitbake""" |
