<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Ping<br>
</p>
<p>Test with/without usrmege feature passed.<br>
</p>
<p>With usrmerge:</p>
<p><b>NOTE: test_dnf_installroot (dnf.DnfRepoTest)<br>
DEBUG: Checking if 'DISTRO_FEATURES' value contains 'usrmerge'
to skip the test<br>
NOTE: ... skipped 'Test run when not enable usrmerge'<br>
Test run when not enable usrmerge<br>
NOTE: test_dnf_installroot_usrmerge (dnf.DnfRepoTest)<br>
DEBUG: Checking if 'DISTRO_FEATURES' value contains 'usrmerge'
to run the test<br>
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<br>
....</b></p>
<p><br>
</p>
<p>Without usrmerge:</p>
<p><b>NOTE: test_dnf_installroot (dnf.DnfRepoTest)</b><b><br>
</b><b>DEBUG: Checking if 'DISTRO_FEATURES' value contains
'usrmerge' to skip the test</b><b><br>
</b><b>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</b><b><br>
</b><b>DEBUG: time: 1567404974.8490767, endtime:
1567406474.8424258</b><b><br>
</b><b>DEBUG: [Command returned '0' after 0.13 seconds]</b><b><br>
</b><b>DEBUG: Command: mkdir -p /home/root/chroot/test/etc</b><b><br>
</b><b>Output: </b><b><br>
</b><b>...</b></p>
<p><b>NOTE: ... ok</b><b><br>
</b><b>
NOTE: test_dnf_installroot_usrmerge (dnf.DnfRepoTest)</b><b><br>
</b><b>
DEBUG: Checking if 'DISTRO_FEATURES' value contains 'usrmerge'
to run the test</b><b><br>
</b><b>
NOTE: ... skipped 'Test run when enable usrmege'</b><b><br>
</b><b>
Test run when enable usrmege</b></p>
<p><br>
</p>
<p><br>
</p>
<div class="moz-cite-prefix">On 9/3/19 12:46 PM,
<a class="moz-txt-link-abbreviated" href="mailto:changqing.li@windriver.com">changqing.li@windriver.com</a> wrote:<br>
</div>
<blockquote type="cite"
cite="mid:1567485996-351404-1-git-send-email-changqing.li@windriver.com">
<pre class="moz-quote-pre" wrap="">From: Changqing Li <a class="moz-txt-link-rfc2396E" href="mailto:changqing.li@windriver.com"><changqing.li@windriver.com></a>
Signed-off-by: Changqing Li <a class="moz-txt-link-rfc2396E" href="mailto:changqing.li@windriver.com"><changqing.li@windriver.com></a>
---
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*')
</pre>
</blockquote>
<pre class="moz-signature" cols="72">--
BRs
Sandy(Li Changqing)</pre>
</body>
</html>