summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorChangqing Li <changqing.li@windriver.com>2019-09-03 12:46:36 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-09-07 07:47:24 +0100
commit46448785a40153cccd053d0dbd13790f582d8414 (patch)
tree0b8655ba32ad178dc6563b3514e6693c84c5d0e8 /meta/lib
parent19086789d947916a11bad23a039f35757b0ead80 (diff)
downloadpoky-46448785a40153cccd053d0dbd13790f582d8414.tar.gz
dnf.py: installroot support usrmerge
(From OE-Core rev: 65f8dfd81abcf48d472ee28c2cdae819fd87ef32) Signed-off-by: Changqing Li <changqing.li@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oeqa/runtime/cases/dnf.py34
1 files changed, 33 insertions, 1 deletions
diff --git a/meta/lib/oeqa/runtime/cases/dnf.py b/meta/lib/oeqa/runtime/cases/dnf.py
index 629b9af3ed..80cc86a4fb 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
9 9
10from oeqa.runtime.case import OERuntimeTestCase 10from oeqa.runtime.case import OERuntimeTestCase
11from oeqa.core.decorator.depends import OETestDepends 11from oeqa.core.decorator.depends import OETestDepends
12from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature 12from oeqa.core.decorator.data import skipIfNotDataVar, skipIfNotFeature, skipIfInDataVar, skipIfNotInDataVar
13from oeqa.runtime.decorator.package import OEHasPackage 13from oeqa.runtime.decorator.package import OEHasPackage
14 14
15class DnfTest(OERuntimeTestCase): 15class DnfTest(OERuntimeTestCase):
@@ -116,6 +116,7 @@ class DnfRepoTest(DnfTest):
116 self.dnf_with_repo('reinstall -y run-postinsts-dev') 116 self.dnf_with_repo('reinstall -y run-postinsts-dev')
117 117
118 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) 118 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache'])
119 @skipIfInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when not enable usrmerge')
119 def test_dnf_installroot(self): 120 def test_dnf_installroot(self):
120 rootpath = '/home/root/chroot/test' 121 rootpath = '/home/root/chroot/test'
121 #Copy necessary files to avoid errors with not yet installed tools on 122 #Copy necessary files to avoid errors with not yet installed tools on
@@ -141,6 +142,37 @@ class DnfRepoTest(DnfTest):
141 self.assertEqual(0, status, output) 142 self.assertEqual(0, status, output)
142 143
143 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) 144 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache'])
145 @skipIfNotInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when enable usrmege')
146 def test_dnf_installroot_usrmerge(self):
147 rootpath = '/home/root/chroot/test'
148 #Copy necessary files to avoid errors with not yet installed tools on
149 #installroot directory.
150 self.target.run('mkdir -p %s/etc' % rootpath, 1500)
151 self.target.run('mkdir -p %s/usr/bin %s/usr/sbin' % (rootpath, rootpath), 1500)
152 self.target.run('ln -sf -r %s/usr/bin %s/bin' % (rootpath, rootpath), 1500)
153 self.target.run('ln -sf -r %s/usr/sbin %s/sbin' % (rootpath, rootpath), 1500)
154 self.target.run('mkdir -p %s/dev' % rootpath, 1500)
155 #Handle different architectures lib dirs
156 self.target.run('mkdir -p %s/usr/lib' % rootpath, 1500)
157 self.target.run('mkdir -p %s/usr/libx32' % rootpath, 1500)
158 self.target.run('mkdir -p %s/usr/lib64' % rootpath, 1500)
159 self.target.run('cp /lib/libtinfo.so.5 %s/usr/lib' % rootpath, 1500)
160 self.target.run('cp /libx32/libtinfo.so.5 %s/usr/libx32' % rootpath, 1500)
161 self.target.run('cp /lib64/libtinfo.so.5 %s/usr/lib64' % rootpath, 1500)
162 self.target.run('ln -sf -r %s/lib %s/usr/lib' % (rootpath,rootpath), 1500)
163 self.target.run('ln -sf -r %s/libx32 %s/usr/libx32' % (rootpath,rootpath), 1500)
164 self.target.run('ln -sf -r %s/lib64 %s/usr/lib64' % (rootpath,rootpath), 1500)
165 self.target.run('cp -r /etc/rpm %s/etc' % rootpath, 1500)
166 self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500)
167 self.target.run('cp /bin/sh %s/bin' % rootpath, 1500)
168 self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500)
169 self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox run-postinsts' % rootpath)
170 status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500)
171 self.assertEqual(0, status, output)
172 status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500)
173 self.assertEqual(0, status, output)
174
175 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache'])
144 def test_dnf_exclude(self): 176 def test_dnf_exclude(self):
145 excludepkg = 'curl-dev' 177 excludepkg = 'curl-dev'
146 self.dnf_with_repo('install -y curl*') 178 self.dnf_with_repo('install -y curl*')