Ping
Test with/without usrmege feature passed.
With usrmerge:
NOTE: test_dnf_installroot (dnf.DnfRepoTest)
DEBUG: Checking if 'DISTRO_FEATURES' value contains 'usrmerge'
to skip the test
NOTE: ... skipped 'Test run when not enable usrmerge'
Test run when not enable usrmerge
NOTE: test_dnf_installroot_usrmerge (dnf.DnfRepoTest)
DEBUG: Checking if 'DISTRO_FEATURES' value contains 'usrmerge'
to run the test
DEBUG: [Running]$ ssh -l root -o UserKnownHostsFile=/dev/null -o
StrictHostKeyChecking=no -o LogLevel=ERROR 192.168.7.16 export
PATH=/usr/sbin:/sbin:/usr/bin:/bin; mkdir -p
/home/root/chroot/test/etc
....
Without usrmerge:
NOTE: test_dnf_installroot (dnf.DnfRepoTest)
DEBUG: Checking if 'DISTRO_FEATURES' value contains
'usrmerge' to skip the test
DEBUG: [Running]$ ssh -l root -o
UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o
LogLevel=ERROR 192.168.7.10 export
PATH=/usr/sbin:/sbin:/usr/bin:/bin; mkdir -p
/home/root/chroot/test/etc
DEBUG: time: 1567404974.8490767, endtime:
1567406474.8424258
DEBUG: [Command returned '0' after 0.13 seconds]
DEBUG: Command: mkdir -p /home/root/chroot/test/etc
Output:
...
NOTE: ... ok
NOTE: test_dnf_installroot_usrmerge (dnf.DnfRepoTest)
DEBUG: Checking if 'DISTRO_FEATURES' value contains 'usrmerge'
to run the test
NOTE: ... skipped 'Test run when enable usrmege'
Test run when enable usrmege
From: Changqing Li <changqing.li@windriver.com> Signed-off-by: Changqing Li <changqing.li@windriver.com> --- meta/lib/oeqa/runtime/cases/dnf.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/meta/lib/oeqa/runtime/cases/dnf.py b/meta/lib/oeqa/runtime/cases/dnf.py index 629b9af..80cc86a 100644 --- a/meta/lib/oeqa/runtime/cases/dnf.py +++ b/meta/lib/oeqa/runtime/cases/dnf.py @@ -9,7 +9,7 @@ from oeqa.utils.httpserver import HTTPService from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends -from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature +from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature, skipIfInDataVar, skipIfNotInDataVar from oeqa.runtime.decorator.package import OEHasPackage class DnfTest(OERuntimeTestCase): @@ -116,6 +116,7 @@ class DnfRepoTest(DnfTest): self.dnf_with_repo('reinstall -y run-postinsts-dev') @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) + @skipIfInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when not enable usrmerge') def test_dnf_installroot(self): rootpath = '/home/root/chroot/test' #Copy necessary files to avoid errors with not yet installed tools on @@ -141,6 +142,37 @@ class DnfRepoTest(DnfTest): self.assertEqual(0, status, output) @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) + @skipIfNotInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when enable usrmege') + def test_dnf_installroot_usrmerge(self): + rootpath = '/home/root/chroot/test' + #Copy necessary files to avoid errors with not yet installed tools on + #installroot directory. + self.target.run('mkdir -p %s/etc' % rootpath, 1500) + self.target.run('mkdir -p %s/usr/bin %s/usr/sbin' % (rootpath, rootpath), 1500) + self.target.run('ln -sf -r %s/usr/bin %s/bin' % (rootpath, rootpath), 1500) + self.target.run('ln -sf -r %s/usr/sbin %s/sbin' % (rootpath, rootpath), 1500) + self.target.run('mkdir -p %s/dev' % rootpath, 1500) + #Handle different architectures lib dirs + self.target.run('mkdir -p %s/usr/lib' % rootpath, 1500) + self.target.run('mkdir -p %s/usr/libx32' % rootpath, 1500) + self.target.run('mkdir -p %s/usr/lib64' % rootpath, 1500) + self.target.run('cp /lib/libtinfo.so.5 %s/usr/lib' % rootpath, 1500) + self.target.run('cp /libx32/libtinfo.so.5 %s/usr/libx32' % rootpath, 1500) + self.target.run('cp /lib64/libtinfo.so.5 %s/usr/lib64' % rootpath, 1500) + self.target.run('ln -sf -r %s/lib %s/usr/lib' % (rootpath,rootpath), 1500) + self.target.run('ln -sf -r %s/libx32 %s/usr/libx32' % (rootpath,rootpath), 1500) + self.target.run('ln -sf -r %s/lib64 %s/usr/lib64' % (rootpath,rootpath), 1500) + self.target.run('cp -r /etc/rpm %s/etc' % rootpath, 1500) + self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500) + self.target.run('cp /bin/sh %s/bin' % rootpath, 1500) + self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500) + self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox run-postinsts' % rootpath) + status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500) + self.assertEqual(0, status, output) + status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500) + self.assertEqual(0, status, output) + + @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) def test_dnf_exclude(self): excludepkg = 'curl-dev' self.dnf_with_repo('install -y curl*')
-- BRs Sandy(Li Changqing)