summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/selftest/wic.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oeqa/selftest/wic.py')
-rw-r--r--meta/lib/oeqa/selftest/wic.py142
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"""