diff options
author | Jair Gonzalez <jair.de.jesus.gonzalez.plascencia@linux.intel.com> | 2016-12-16 21:46:18 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-12-22 08:50:17 +0000 |
commit | dd37336b4dedf63d5c4daf7fd4d507091b7a7256 (patch) | |
tree | 8a3ff0fd81d13f167c12838dc338b46475d97456 | |
parent | f8745bb51935e8fddab5daf3c1ad460a72e890bd (diff) | |
download | poky-dd37336b4dedf63d5c4daf7fd4d507091b7a7256.tar.gz |
selftest/wic: extending test coverage for WIC script options
The previous WIC script selftest didn't cover all of its command line
options. Some option variants were included in existing test cases and
the following tests were added to complete covering them:
1552 Test wic --version
1553 Test wic help create
1554 Test wic help list
1555 Test wic list images
1556 Test wic list source-plugins
1557 Test wic listed images help
1558 Test debug
1563 Test skip build check
1564 Test build rootfs
1559 Test image vars directory selection
1562 Test alternate output directory
(From OE-Core rev: b4d52c3f1e0ad2c14028ff08c0938d1b24b7f648)
Signed-off-by: Jair Gonzalez <jair.de.jesus.gonzalez.plascencia@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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""" |