mirror of
https://git.yoctoproject.org/poky
synced 2026-05-02 18:32:15 +02:00
oeqa/selftest/package: improve test_preserve_ownership
This test was failing very oddly in qemuarm64 runs. Rewriting the test to be clearer and less fragile fixed it. (From OE-Core rev: a26fc7c2119df12468b0a834de6fe67aa9c86085) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
8e72283f54
commit
31926bd1c1
@@ -153,25 +153,25 @@ class PackageTests(OESelftestTestCase):
|
||||
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):
|
||||
def check_ownership(qemu, expected_gid, expected_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
|
||||
status, output = qemu.run_serial('stat -c "%U %G" ' + path)
|
||||
self.assertEqual(status, 1, "stat failed: " + output)
|
||||
try:
|
||||
uid, gid = output.split()
|
||||
self.assertEqual(uid, expected_uid)
|
||||
self.assertEqual(gid, expected_gid)
|
||||
except ValueError:
|
||||
self.fail("Cannot parse output: " + output)
|
||||
|
||||
sysconfdir = get_bb_var('sysconfdir', 'selftest-chown')
|
||||
with runqemu('core-image-minimal') as qemu:
|
||||
for path in [ sysconfdir + "/selftest-chown/file",
|
||||
sysconfdir + "/selftest-chown/dir",
|
||||
sysconfdir + "/selftest-chown/symlink",
|
||||
sysconfdir + "/selftest-chown/fifotest/fifo"]:
|
||||
if not check_ownership(qemu, "test", "test", path):
|
||||
self.fail('Test ownership %s failed' % path)
|
||||
check_ownership(qemu, "test", "test", path)
|
||||
|
||||
Reference in New Issue
Block a user