aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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):
"""Wic test class."""
resultdir = "/var/tmp/wic/build/"
+ alternate_resultdir = "/var/tmp/wic/build/alt/"
image_is_ready = False
+ wicenv_cache = {}
def setUpLocal(self):
"""This code is executed before each test method."""
@@ -56,10 +58,16 @@ class Wic(oeSelfTest):
rmtree(self.resultdir, ignore_errors=True)
+ @testcase(1552)
+ def test_version(self):
+ """Test wic --version"""
+ self.assertEqual(0, runCmd('wic --version').status)
+
@testcase(1208)
def test_help(self):
- """Test wic --help"""
+ """Test wic --help and wic -h"""
self.assertEqual(0, runCmd('wic --help').status)
+ self.assertEqual(0, runCmd('wic -h').status)
@testcase(1209)
def test_createhelp(self):
@@ -71,6 +79,16 @@ class Wic(oeSelfTest):
"""Test wic list --help"""
self.assertEqual(0, runCmd('wic list --help').status)
+ @testcase(1553)
+ def test_help_create(self):
+ """Test wic help create"""
+ self.assertEqual(0, runCmd('wic help create').status)
+
+ @testcase(1554)
+ def test_help_list(self):
+ """Test wic help list"""
+ self.assertEqual(0, runCmd('wic help list').status)
+
@testcase(1215)
def test_help_overview(self):
"""Test wic help overview"""
@@ -86,6 +104,24 @@ class Wic(oeSelfTest):
"""Test wic help kickstart"""
self.assertEqual(0, runCmd('wic help kickstart').status)
+ @testcase(1555)
+ def test_list_images(self):
+ """Test wic list images"""
+ self.assertEqual(0, runCmd('wic list images').status)
+
+ @testcase(1556)
+ def test_list_source_plugins(self):
+ """Test wic list source-plugins"""
+ self.assertEqual(0, runCmd('wic list source-plugins').status)
+
+ @testcase(1557)
+ def test_listed_images_help(self):
+ """Test wic listed images help"""
+ output = runCmd('wic list images').output
+ imagelist = [line.split()[0] for line in output.splitlines()]
+ for image in imagelist:
+ self.assertEqual(0, runCmd('wic list %s help' % image).status)
+
@testcase(1213)
def test_unsupported_subcommand(self):
"""Test unsupported subcommand"""
@@ -99,8 +135,8 @@ class Wic(oeSelfTest):
@testcase(1211)
def test_build_image_name(self):
- """Test wic create directdisk --image-name core-image-minimal"""
- cmd = "wic create directdisk --image-name core-image-minimal"
+ """Test wic create directdisk --image-name=core-image-minimal"""
+ cmd = "wic create directdisk --image-name=core-image-minimal"
self.assertEqual(0, runCmd(cmd).status)
self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct")))
@@ -162,6 +198,22 @@ class Wic(oeSelfTest):
self.assertEqual(0, runCmd(cmd).status)
self.assertEqual(1, len(glob(self.resultdir + "sdimage-bootpart-*direct")))
+ @testcase(1562)
+ def test_alternate_output_dir(self):
+ """Test alternate output directory"""
+ self.assertEqual(0, runCmd("wic create directdisk "
+ "-e core-image-minimal "
+ "-o %s"
+ % self.alternate_resultdir).status)
+ self.assertEqual(1, len(glob(self.alternate_resultdir +
+ "build/directdisk-*.direct")))
+ self.assertEqual(0, runCmd("wic create mkefidisk -e "
+ "core-image-minimal "
+ "--outdir=%s"
+ % self.alternate_resultdir).status)
+ self.assertEqual(1, len(glob(self.alternate_resultdir +
+ "build/mkefidisk-*direct")))
+
@testcase(1212)
def test_build_artifacts(self):
"""Test wic create directdisk providing all artifacts."""
@@ -188,7 +240,7 @@ class Wic(oeSelfTest):
def test_compress_bzip2(self):
"""Test compressing an image with bzip2"""
self.assertEqual(0, runCmd("wic create directdisk "
- "--image-name core-image-minimal "
+ "--image-name=core-image-minimal "
"-c bzip2").status)
self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct.bz2")))
@@ -196,22 +248,58 @@ class Wic(oeSelfTest):
def test_compress_xz(self):
"""Test compressing an image with xz"""
self.assertEqual(0, runCmd("wic create directdisk "
- "--image-name core-image-minimal "
- "-c xz").status)
+ "--image-name=core-image-minimal "
+ "--compress-with=xz").status)
self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct.xz")))
@testcase(1267)
def test_wrong_compressor(self):
"""Test how wic breaks if wrong compressor is provided"""
self.assertEqual(2, runCmd("wic create directdisk "
- "--image-name core-image-minimal "
+ "--image-name=core-image-minimal "
"-c wrong", ignore_status=True).status)
+ @testcase(1558)
+ def test_debug(self):
+ """Test debug"""
+ self.assertEqual(0, runCmd("wic create directdisk "
+ "--image-name=core-image-minimal "
+ "-D").status)
+ self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct")))
+ self.assertEqual(0, runCmd("wic create directdisk "
+ "--image-name=core-image-minimal "
+ "--debug").status)
+ self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct")))
+
+ @testcase(1563)
+ def test_skip_build_check(self):
+ """Test skip build check"""
+ self.assertEqual(0, runCmd("wic create directdisk "
+ "--image-name=core-image-minimal "
+ "-s").status)
+ self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct")))
+ self.assertEqual(0, runCmd("wic create directdisk "
+ "--image-name=core-image-minimal "
+ "--skip-build-check").status)
+ self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct")))
+
+ @testcase(1564)
+ def test_build_rootfs(self):
+ """Test build rootfs"""
+ self.assertEqual(0, runCmd("wic create directdisk "
+ "--image-name=core-image-minimal "
+ "-f").status)
+ self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct")))
+ self.assertEqual(0, runCmd("wic create directdisk "
+ "--image-name=core-image-minimal "
+ "--build-rootfs").status)
+ self.assertEqual(1, len(glob(self.resultdir + "directdisk-*.direct")))
+
@testcase(1268)
def test_rootfs_indirect_recipes(self):
"""Test usage of rootfs plugin with rootfs recipes"""
status = runCmd("wic create directdisk-multi-rootfs "
- "--image-name core-image-minimal "
+ "--image-name=core-image-minimal "
"--rootfs rootfs1=core-image-minimal "
"--rootfs rootfs2=core-image-minimal").status
self.assertEqual(0, status)
@@ -225,9 +313,9 @@ class Wic(oeSelfTest):
'STAGING_DIR_NATIVE', 'IMAGE_ROOTFS'))
bbvars['wks'] = "directdisk-multi-rootfs"
status = runCmd("wic create %(wks)s "
- "-b %(staging_datadir)s "
- "-k %(deploy_dir_image)s "
- "-n %(staging_dir_native)s "
+ "--bootimg-dir=%(staging_datadir)s "
+ "--kernel-dir=%(deploy_dir_image)s "
+ "--native-sysroot=%(staging_dir_native)s "
"--rootfs-dir rootfs1=%(image_rootfs)s "
"--rootfs-dir rootfs2=%(image_rootfs)s"
% bbvars).status
@@ -237,19 +325,30 @@ class Wic(oeSelfTest):
@testcase(1496)
def test_bmap(self):
"""Test generation of .bmap file"""
+ cmd = "wic create directdisk -e core-image-minimal -m"
+ status = runCmd(cmd).status
+ self.assertEqual(0, status)
+ self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct")))
+ self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct.bmap")))
cmd = "wic create directdisk -e core-image-minimal --bmap"
status = runCmd(cmd).status
self.assertEqual(0, status)
self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct")))
self.assertEqual(1, len(glob(self.resultdir + "directdisk-*direct.bmap")))
+ def _get_image_env_path(self, image):
+ """Generate and obtain the path to <image>.env"""
+ if image not in self.wicenv_cache:
+ self.assertEqual(0, bitbake('%s -c do_rootfs_wicenv' % image).status)
+ stdir = get_bb_var('STAGING_DIR_TARGET', image)
+ self.wicenv_cache[image] = os.path.join(stdir, 'imgdata')
+ return self.wicenv_cache[image]
+
@testcase(1347)
def test_image_env(self):
"""Test generation of <image>.env files."""
image = 'core-image-minimal'
- self.assertEqual(0, bitbake('%s -c do_rootfs_wicenv' % image).status)
- stdir = get_bb_var('STAGING_DIR_TARGET', image)
- imgdatadir = os.path.join(stdir, 'imgdata')
+ imgdatadir = self._get_image_env_path(image)
basename = get_bb_var('IMAGE_BASENAME', image)
self.assertEqual(basename, image)
@@ -267,6 +366,21 @@ class Wic(oeSelfTest):
self.assertTrue(var in content, "%s is not in .env file" % var)
self.assertTrue(content[var])
+ @testcase(1559)
+ def test_image_vars_dir(self):
+ """Test image vars directory selection"""
+ image = 'core-image-minimal'
+ imgenvdir = self._get_image_env_path(image)
+
+ self.assertEqual(0, runCmd("wic create directdisk "
+ "--image-name=%s "
+ "-v %s"
+ % (image, imgenvdir)).status)
+ self.assertEqual(0, runCmd("wic create directdisk "
+ "--image-name=%s "
+ "--vars %s"
+ % (image, imgenvdir)).status)
+
@testcase(1351)
def test_wic_image_type(self):
"""Test building wic images by bitbake"""