diff options
author | Daisuke Yamane <daisuke.yamane@cybertrust.co.jp> | 2020-03-14 13:09:42 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-04-26 13:58:45 +0100 |
commit | 88c1824468109d0f78d5fee7b71baa1f3944db7f (patch) | |
tree | 1770fe8976a45f2ec9746a0fc5d6544c8a00336f /meta/lib/oeqa/selftest/cases/package.py | |
parent | 4df992ce50c2d12e356b6d9fe7b23a6320c8b4df (diff) | |
download | openembedded-core-contrib-88c1824468109d0f78d5fee7b71baa1f3944db7f.tar.gz |
selftest/package: Add test to ensure ownership is preserved
Yocto Bug: https://bugzilla.yoctoproject.org/show_bug.cgi?id=13806
Add test_preserve_ownership to selftest/package.
This test creates a file, a directory and a symbolic link and changes ownership,
then compares with them installed in rootfs to ensure ownership is preserved.
[Test without a commit 'bitbake: lib/bb/utils.py: Preserve ownership of symlink']
| 2020-03-14 10:01:14,519 - oe-selftest - INFO - test_preserve_ownership (package.PackageTests)
| 2020-03-14 10:56:44,612 - oe-selftest - INFO - Check ownership of /etc/selftest-chown/file
| 2020-03-14 10:56:44,770 - oe-selftest - INFO - Check ownership of /etc/selftest-chown/dir
| 2020-03-14 10:56:44,822 - oe-selftest - INFO - Check ownership of /etc/selftest-chown/symlink
| 2020-03-14 10:56:44,879 - oe-selftest - ERROR - Incrrect ownership /etc/selftest-chown/symlink [root:root]
| 2020-03-14 10:56:45,884 - oe-selftest - INFO - ... FAIL
[Test with a commit 'bitbake: lib/bb/utils.py: Preserve ownership of symlink']
| 2020-03-14 10:58:49,599 - oe-selftest - INFO - test_preserve_ownership (package.PackageTests)
| 2020-03-14 11:51:39,947 - oe-selftest - INFO - Check ownership of /etc/selftest-chown/file
| 2020-03-14 11:51:40,013 - oe-selftest - INFO - Check ownership of /etc/selftest-chown/dir
| 2020-03-14 11:51:40,063 - oe-selftest - INFO - Check ownership of /etc/selftest-chown/symlink
| 2020-03-14 11:51:41,118 - oe-selftest - INFO - ... ok
Signed-off-by: Daisuke Yamane <daisuke.yamane@cybertrust.co.jp>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/selftest/cases/package.py')
-rw-r--r-- | meta/lib/oeqa/selftest/cases/package.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/meta/lib/oeqa/selftest/cases/package.py b/meta/lib/oeqa/selftest/cases/package.py index b87f8dc3e2..3010b1af49 100644 --- a/meta/lib/oeqa/selftest/cases/package.py +++ b/meta/lib/oeqa/selftest/cases/package.py @@ -148,3 +148,26 @@ class PackageTests(OESelftestTestCase): '/usr/libexec/hello4']: if not gdbtest(qemu, binary): self.fail('GDB %s failed' % binary) + + def test_preserve_ownership(self): + import os, stat, oe.cachedpath + features = 'IMAGE_INSTALL_append = " selftest-chown"\n' + self.write_config(features) + bitbake("core-image-minimal") + + sysconfdir = get_bb_var('sysconfdir', 'selftest-chown') + def check_ownership(qemu, gid, uid, path): + self.logger.info("Check ownership of %s", path) + status, output = qemu.run_serial(r'/bin/stat -c "%U %G" ' + path, timeout=60) + output = output.split(" ") + if output[0] != uid or output[1] != gid : + self.logger.error("Incrrect ownership %s [%s:%s]", path, output[0], output[1]) + return False + return True + + with runqemu('core-image-minimal') as qemu: + for path in [ sysconfdir + "/selftest-chown/file", + sysconfdir + "/selftest-chown/dir", + sysconfdir + "/selftest-chown/symlink"]: + if not check_ownership(qemu, "test", "test", path): + self.fail('Test ownership %s failed' % path) |