summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/selftest/cases/imagefeatures.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oeqa/selftest/cases/imagefeatures.py')
-rw-r--r--meta/lib/oeqa/selftest/cases/imagefeatures.py79
1 files changed, 57 insertions, 22 deletions
diff --git a/meta/lib/oeqa/selftest/cases/imagefeatures.py b/meta/lib/oeqa/selftest/cases/imagefeatures.py
index afc629f29c..d36d45c551 100644
--- a/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -5,6 +5,7 @@
from oeqa.selftest.case import OESelftestTestCase
from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
from oeqa.utils.sshcontrol import SSHControl
+import glob
import os
import json
@@ -67,18 +68,6 @@ class ImageFeatures(OESelftestTestCase):
self.assertEqual(status, 0, 'ssh to user tester failed with %s' % output)
- def test_clutter_image_can_be_built(self):
- """
- Summary: Check if clutter image can be built
- Expected: 1. core-image-clutter can be built
- Product: oe-core
- Author: Ionut Chisanovici <ionutx.chisanovici@intel.com>
- AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com>
- """
-
- # Build a core-image-clutter
- bitbake('core-image-clutter')
-
def test_wayland_support_in_image(self):
"""
Summary: Check Wayland support in image
@@ -124,7 +113,7 @@ class ImageFeatures(OESelftestTestCase):
# check if result image is sparse
image_stat = os.stat(image_path)
- self.assertTrue(image_stat.st_size > image_stat.st_blocks * 512)
+ self.assertGreater(image_stat.st_size, image_stat.st_blocks * 512)
# check if the resulting gzip is valid
self.assertTrue(runCmd('gzip -t %s' % gzip_path))
@@ -161,7 +150,12 @@ class ImageFeatures(OESelftestTestCase):
sysroot = get_bb_var('STAGING_DIR_NATIVE', 'core-image-minimal')
result = runCmd('qemu-img info --output json %s' % image_path,
native_sysroot=sysroot)
- self.assertTrue(json.loads(result.output).get('format') == itype)
+ try:
+ data = json.loads(result.output)
+ self.assertEqual(data.get('format'), itype,
+ msg="Unexpected format in '%s'" % (result.output))
+ except json.decoder.JSONDecodeError:
+ self.fail("Could not parse '%ss'" % result.output)
def test_long_chain_conversion(self):
"""
@@ -203,13 +197,13 @@ class ImageFeatures(OESelftestTestCase):
"""
image_name = 'core-image-minimal'
- img_types = [itype for itype in get_bb_var("IMAGE_TYPES", image_name).split() \
- if itype not in ('container', 'elf', 'f2fs', 'multiubi')]
+ all_image_types = set(get_bb_var("IMAGE_TYPES", image_name).split())
+ skip_image_types = set(('container', 'elf', 'f2fs', 'multiubi', 'tar.zst', 'wic.zst'))
+ img_types = all_image_types - skip_image_types
config = 'IMAGE_FSTYPES += "%s"\n'\
'MKUBIFS_ARGS ?= "-m 2048 -e 129024 -c 2047"\n'\
'UBINIZE_ARGS ?= "-m 2048 -p 128KiB -s 512"' % ' '.join(img_types)
-
self.write_config(config)
bitbake(image_name)
@@ -234,8 +228,8 @@ USERADD_GID_TABLES += "files/static-group"
def test_no_busybox_base_utils(self):
config = """
-# Enable x11
-DISTRO_FEATURES_append += "x11"
+# Enable wayland
+DISTRO_FEATURES:append = " pam opengl wayland"
# Switch to systemd
DISTRO_FEATURES += "systemd"
@@ -251,9 +245,50 @@ VIRTUAL-RUNTIME_base-utils = "packagegroup-core-base-utils"
VIRTUAL-RUNTIME_base-utils-hwclock = "util-linux-hwclock"
VIRTUAL-RUNTIME_base-utils-syslog = ""
-# Blacklist busybox
-PNBLACKLIST[busybox] = "Don't build this"
+# Skip busybox
+SKIP_RECIPE[busybox] = "Don't build this"
"""
self.write_config(config)
- bitbake("--graphviz core-image-sato")
+ bitbake("--graphviz core-image-weston")
+
+ def test_image_gen_debugfs(self):
+ """
+ Summary: Check debugfs generation
+ Expected: 1. core-image-minimal can be build with IMAGE_GEN_DEBUGFS variable set
+ 2. debug filesystem is created when variable set
+ 3. debug symbols available
+ Product: oe-core
+ Author: Humberto Ibarra <humberto.ibarra.lopez@intel.com>
+ Yeoh Ee Peng <ee.peng.yeoh@intel.com>
+ """
+
+ image_name = 'core-image-minimal'
+ features = 'IMAGE_GEN_DEBUGFS = "1"\n'
+ features += 'IMAGE_FSTYPES_DEBUGFS = "tar.bz2"\n'
+ features += 'MACHINE = "genericx86-64"\n'
+ self.write_config(features)
+
+ bitbake(image_name)
+ deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+ dbg_tar_file = os.path.join(deploy_dir_image, "*-dbg.rootfs.tar.bz2")
+ debug_files = glob.glob(dbg_tar_file)
+ self.assertNotEqual(len(debug_files), 0, 'debug filesystem not generated at %s' % dbg_tar_file)
+ result = runCmd('cd %s; tar xvf %s' % (deploy_dir_image, dbg_tar_file))
+ self.assertEqual(result.status, 0, msg='Failed to extract %s: %s' % (dbg_tar_file, result.output))
+ result = runCmd('find %s -name %s' % (deploy_dir_image, "udevadm"))
+ self.assertTrue("udevadm" in result.output, msg='Failed to find udevadm: %s' % result.output)
+ dbg_symbols_targets = result.output.splitlines()
+ self.assertTrue(dbg_symbols_targets, msg='Failed to split udevadm: %s' % dbg_symbols_targets)
+ for t in dbg_symbols_targets:
+ result = runCmd('objdump --syms %s | grep debug' % t)
+ self.assertTrue("debug" in result.output, msg='Failed to find debug symbol: %s' % result.output)
+
+ def test_empty_image(self):
+ """Test creation of image with no packages"""
+ bitbake('test-empty-image')
+ res_dir = get_bb_var('DEPLOY_DIR_IMAGE')
+ images = os.path.join(res_dir, "test-empty-image-*.manifest")
+ result = glob.glob(images)
+ with open(result[1],"r") as f:
+ self.assertEqual(len(f.read().strip()),0)