diff options
| author | Yi Zhao <yi.zhao@windriver.com> | 2025-04-03 16:37:04 +0800 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-04-08 15:49:17 +0100 |
| commit | 5040d252c67eb0211b3a0537ce3d05afcafd6a85 (patch) | |
| tree | 4fa2a13877465ab39edfa0bbcc2625612a61c48f /meta | |
| parent | e11fc01d7b0857d49d304f432d68dd7368055b08 (diff) | |
| download | poky-5040d252c67eb0211b3a0537ce3d05afcafd6a85.tar.gz | |
oeqa/selftest/wic: add test for excluding symlinks
Add test to check if --exclude-path option can exclude symlinks. This
test validates commit[1].
Test result:
$ oe-selftest -r wic.Wic.test_exclude_path
2025-04-03 15:11:25,211 - oe-selftest - INFO - meta-selftest layer not found in BBLAYERS, adding it
2025-04-03 15:11:30,016 - oe-selftest - INFO - Adding layer libraries:
2025-04-03 15:11:30,017 - oe-selftest - INFO - /buildarea/poky/meta/lib
2025-04-03 15:11:30,017 - oe-selftest - INFO - /buildarea/poky/meta-yocto-bsp/lib
2025-04-03 15:11:30,017 - oe-selftest - INFO - /buildarea/poky/meta-selftest/lib
2025-04-03 15:11:30,019 - oe-selftest - INFO - Checking base configuration is valid/parsable
NOTE: Starting bitbake server...
2025-04-03 15:11:31,652 - oe-selftest - INFO - Adding: "include selftest.inc" in /buildarea/poky/build-st/conf/local.conf
2025-04-03 15:11:31,653 - oe-selftest - INFO - Adding: "include bblayers.inc" in bblayers.conf
2025-04-03 15:11:31,653 - oe-selftest - INFO - test_exclude_path (wic.Wic)
2025-04-03 15:43:11,341 - oe-selftest - INFO - ... ok
2025-04-03 15:43:11,341 - oe-selftest - INFO - ----------------------------------------------------------------------
2025-04-03 15:43:11,342 - oe-selftest - INFO - Ran 1 test in 1899.900s
2025-04-03 15:43:11,342 - oe-selftest - INFO - OK
2025-04-03 15:43:14,834 - oe-selftest - INFO - RESULTS:
2025-04-03 15:43:14,835 - oe-selftest - INFO - RESULTS - wic.Wic.test_exclude_path: PASSED (1899.69s)
2025-04-03 15:43:14,836 - oe-selftest - INFO - SUMMARY:
2025-04-03 15:43:14,836 - oe-selftest - INFO - oe-selftest () - Ran 1 test in 1899.900s
2025-04-03 15:43:14,836 - oe-selftest - INFO - oe-selftest - OK - All required tests passed (successes=1, skipped=0, failures=0, errors=0)
[1] https://git.openembedded.org/openembedded-core/commit/?id=42e829ac1e9d74646b6dfb327b18b15f6b0df60b
(From OE-Core rev: 0dd455bed9b52c0cf237ea2f8bd1a8f7890078e9)
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/lib/oeqa/selftest/cases/wic.py | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py index 4f5d43b5ee..59fd99a788 100644 --- a/meta/lib/oeqa/selftest/cases/wic.py +++ b/meta/lib/oeqa/selftest/cases/wic.py | |||
| @@ -446,8 +446,9 @@ class Wic(WicTestCase): | |||
| 446 | wks.write(""" | 446 | wks.write(""" |
| 447 | part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path usr | 447 | part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path usr |
| 448 | part /usr --source rootfs --ondisk mmcblk0 --fstype=ext4 --rootfs-dir %s/usr | 448 | part /usr --source rootfs --ondisk mmcblk0 --fstype=ext4 --rootfs-dir %s/usr |
| 449 | part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --rootfs-dir %s/usr""" | 449 | part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --rootfs-dir %s/usr |
| 450 | % (rootfs_dir, rootfs_dir)) | 450 | part /mnt --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/whoami --rootfs-dir %s/usr""" |
| 451 | % (rootfs_dir, rootfs_dir, rootfs_dir)) | ||
| 451 | runCmd("wic create %s -e core-image-minimal -o %s" \ | 452 | runCmd("wic create %s -e core-image-minimal -o %s" \ |
| 452 | % (wks_file, self.resultdir)) | 453 | % (wks_file, self.resultdir)) |
| 453 | 454 | ||
| @@ -466,9 +467,9 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r | |||
| 466 | # 1:0.00MiB:200MiB:200MiB:ext4::;\n | 467 | # 1:0.00MiB:200MiB:200MiB:ext4::;\n |
| 467 | partlns = res.output.splitlines()[2:] | 468 | partlns = res.output.splitlines()[2:] |
| 468 | 469 | ||
| 469 | self.assertEqual(3, len(partlns)) | 470 | self.assertEqual(4, len(partlns)) |
| 470 | 471 | ||
| 471 | for part in [1, 2, 3]: | 472 | for part in [1, 2, 3, 4]: |
| 472 | part_file = os.path.join(self.resultdir, "selftest_img.part%d" % part) | 473 | part_file = os.path.join(self.resultdir, "selftest_img.part%d" % part) |
| 473 | partln = partlns[part-1].split(":") | 474 | partln = partlns[part-1].split(":") |
| 474 | self.assertEqual(7, len(partln)) | 475 | self.assertEqual(7, len(partln)) |
| @@ -510,7 +511,24 @@ part /etc --source rootfs --ondisk mmcblk0 --fstype=ext4 --exclude-path bin/ --r | |||
| 510 | self.assertIn("..", files) | 511 | self.assertIn("..", files) |
| 511 | self.assertEqual(2, len(files)) | 512 | self.assertEqual(2, len(files)) |
| 512 | 513 | ||
| 513 | for part in [1, 2, 3]: | 514 | # Partition 4, should contain the same as partition 2, including the bin |
| 515 | # directory, but not whoami (a symlink to busybox.nosuid) inside it. | ||
| 516 | res = runCmd("debugfs -R 'ls -p' %s" % \ | ||
| 517 | os.path.join(self.resultdir, "selftest_img.part4"), stderr=subprocess.PIPE) | ||
| 518 | files = extract_files(res.output) | ||
| 519 | self.assertNotIn("etc", files) | ||
| 520 | self.assertNotIn("usr", files) | ||
| 521 | self.assertIn("share", files) | ||
| 522 | self.assertIn("bin", files) | ||
| 523 | res = runCmd("debugfs -R 'ls -p bin' %s" % \ | ||
| 524 | os.path.join(self.resultdir, "selftest_img.part4"), stderr=subprocess.PIPE) | ||
| 525 | files = extract_files(res.output) | ||
| 526 | self.assertIn(".", files) | ||
| 527 | self.assertIn("..", files) | ||
| 528 | self.assertIn("who", files) | ||
| 529 | self.assertNotIn("whoami", files) | ||
| 530 | |||
| 531 | for part in [1, 2, 3, 4]: | ||
| 514 | part_file = os.path.join(self.resultdir, "selftest_img.part%d" % part) | 532 | part_file = os.path.join(self.resultdir, "selftest_img.part%d" % part) |
| 515 | os.remove(part_file) | 533 | os.remove(part_file) |
| 516 | 534 | ||
