From: Trevor Woerner Date: Mon, 28 Apr 2025 15:13:35 +0000 (-0400) Subject: oe-selftest.wic: add PATH handling X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3994e727f10c5a0143d52bdd6e1d9ca037296d59;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git oe-selftest.wic: add PATH handling The wic test_exclude_path_with_extra_space test succeeds on non-debian AB workers. Add PATH handling so parted from the wic-tools can be found on debian-based AB workers. Fixes [YOCTO #15838] Signed-off-by: Trevor Woerner Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py index d98af8713a1..60dce33911e 100644 --- a/meta/lib/oeqa/selftest/cases/wic.py +++ b/meta/lib/oeqa/selftest/cases/wic.py @@ -538,35 +538,42 @@ part /mnt --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/whoa def test_exclude_path_with_extra_space(self): """Test having --exclude-path with IMAGE_ROOTFS_EXTRA_SPACE. [Yocto #15555]""" - with NamedTemporaryFile("w", suffix=".wks") as wks: - wks.writelines( - ['bootloader --ptable gpt\n', - 'part /boot --size=100M --active --fstype=ext4 --label boot\n', - 'part / --source rootfs --fstype=ext4 --label root --exclude-path boot/\n']) - wks.flush() - config = 'IMAGE_ROOTFS_EXTRA_SPACE = "500000"\n'\ - 'DEPENDS:pn-core-image-minimal += "wic-tools"\n'\ - 'IMAGE_FSTYPES += "wic"\n'\ - 'WKS_FILE = "%s"\n' % wks.name - self.append_config(config) - bitbake('core-image-minimal') + oldpath = os.environ['PATH'] + os.environ['PATH'] = get_bb_var("PATH", "wic-tools") - """ - the output of "wic ls .wic" will look something like: - Num Start End Size Fstype - 1 17408 136332287 136314880 ext4 - 2 136332288 171464703 35132416 ext4 - we are looking for the size of partition 2 - i.e. in this case the number 35,132,416 - without the fix the size will be around 85,403,648 - with the fix the size should be around 799,960,064 - """ - bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'MACHINE'], 'core-image-minimal') - deploy_dir = bb_vars['DEPLOY_DIR_IMAGE'] - machine = bb_vars['MACHINE'] - wicout = glob(os.path.join(deploy_dir, "core-image-minimal-%s.rootfs-*.wic" % machine))[0] - size_of_root_partition = int(runCmd("wic ls %s" % wicout).output.split('\n')[2].split()[3]) - self.assertGreater(size_of_root_partition, 500000000) + try: + with NamedTemporaryFile("w", suffix=".wks") as wks: + wks.writelines( + ['bootloader --ptable gpt\n', + 'part /boot --size=100M --active --fstype=ext4 --label boot\n', + 'part / --source rootfs --fstype=ext4 --label root --exclude-path boot/\n']) + wks.flush() + config = 'IMAGE_ROOTFS_EXTRA_SPACE = "500000"\n'\ + 'DEPENDS:pn-core-image-minimal += "wic-tools"\n'\ + 'IMAGE_FSTYPES += "wic"\n'\ + 'WKS_FILE = "%s"\n' % wks.name + self.append_config(config) + bitbake('core-image-minimal') + + """ + the output of "wic ls .wic" will look something like: + Num Start End Size Fstype + 1 17408 136332287 136314880 ext4 + 2 136332288 171464703 35132416 ext4 + we are looking for the size of partition 2 + i.e. in this case the number 35,132,416 + without the fix the size will be around 85,403,648 + with the fix the size should be around 799,960,064 + """ + bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'MACHINE'], 'core-image-minimal') + deploy_dir = bb_vars['DEPLOY_DIR_IMAGE'] + machine = bb_vars['MACHINE'] + wicout = glob(os.path.join(deploy_dir, "core-image-minimal-%s.rootfs-*.wic" % machine))[0] + size_of_root_partition = int(runCmd("wic ls %s" % wicout).output.split('\n')[2].split()[3]) + self.assertGreater(size_of_root_partition, 500000000) + + finally: + os.environ['PATH'] = oldpath def test_include_path(self): """Test --include-path wks option."""