summaryrefslogtreecommitdiffstats
path: root/meta/lib
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@arm.com>2022-09-26 12:16:00 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-09-26 22:04:35 +0100
commit868eb84303cec5c4865da373ab7e47d9c637da96 (patch)
treec45c24493c36196e370d7335a8e24ef69851388c /meta/lib
parent8f4ebf24538e8a5469e5da93ac2b43deb10118fe (diff)
downloadpoky-868eb84303cec5c4865da373ab7e47d9c637da96.tar.gz
oeqa/runtime/dnf: use dnf-test packages
Instead of installing run-postinsts with it's postinst scripts causing systemd restarts, use the new dnf-test-* packages instead. Remove from the installroot tests entirely as they're exercised enough using just busybox. Rewrite the exclude test to be simplier now these packages are not going to be part of an existing dependency chain. [ YOCTO #14787 ] (From OE-Core rev: fb1de2abc53bd742bc55cfecd384b78852c10d80) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r--meta/lib/oeqa/runtime/cases/dnf.py52
1 files changed, 20 insertions, 32 deletions
diff --git a/meta/lib/oeqa/runtime/cases/dnf.py b/meta/lib/oeqa/runtime/cases/dnf.py
index e0b91090b2..410d456bdf 100644
--- a/meta/lib/oeqa/runtime/cases/dnf.py
+++ b/meta/lib/oeqa/runtime/cases/dnf.py
@@ -75,48 +75,43 @@ class DnfRepoTest(DnfTest):
75 def test_dnf_makecache(self): 75 def test_dnf_makecache(self):
76 self.dnf_with_repo('makecache') 76 self.dnf_with_repo('makecache')
77 77
78
79# Does not work when repo is specified on the command line
80# @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache'])
81# def test_dnf_repolist(self):
82# self.dnf_with_repo('repolist')
83
84 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) 78 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache'])
85 def test_dnf_repoinfo(self): 79 def test_dnf_repoinfo(self):
86 self.dnf_with_repo('repoinfo') 80 self.dnf_with_repo('repoinfo')
87 81
88 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) 82 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache'])
89 def test_dnf_install(self): 83 def test_dnf_install(self):
90 output = self.dnf_with_repo('list run-postinsts-dev') 84 self.dnf_with_repo('remove -y dnf-test-*')
91 if 'Installed Packages' in output: 85 self.dnf_with_repo('install -y dnf-test-dep')
92 self.dnf_with_repo('remove -y run-postinsts-dev')
93 self.dnf_with_repo('install -y run-postinsts-dev')
94 86
95 @OETestDepends(['dnf.DnfRepoTest.test_dnf_install']) 87 @OETestDepends(['dnf.DnfRepoTest.test_dnf_install'])
96 def test_dnf_install_dependency(self): 88 def test_dnf_install_dependency(self):
97 self.dnf_with_repo('remove -y run-postinsts') 89 self.dnf_with_repo('remove -y dnf-test-*')
98 self.dnf_with_repo('install -y run-postinsts-dev') 90 self.dnf_with_repo('install -y dnf-test-main')
91 output = self.dnf('list --installed dnf-test-*')
92 self.assertIn("dnf-test-main.", output)
93 self.assertIn("dnf-test-dep.", output)
99 94
100 @OETestDepends(['dnf.DnfRepoTest.test_dnf_install_dependency']) 95 @OETestDepends(['dnf.DnfRepoTest.test_dnf_install_dependency'])
101 def test_dnf_install_from_disk(self): 96 def test_dnf_install_from_disk(self):
102 self.dnf_with_repo('remove -y run-postinsts-dev') 97 self.dnf_with_repo('remove -y dnf-test-dep')
103 self.dnf_with_repo('install -y --downloadonly run-postinsts-dev') 98 self.dnf_with_repo('install -y --downloadonly dnf-test-dep')
104 status, output = self.target.run('find /var/cache/dnf -name run-postinsts-dev*rpm', 1500) 99 status, output = self.target.run('find /var/cache/dnf -name dnf-test-dep*rpm')
105 self.assertEqual(status, 0, output) 100 self.assertEqual(status, 0, output)
106 self.dnf_with_repo('install -y %s' % output) 101 self.dnf_with_repo('install -y %s' % output)
107 102
108 @OETestDepends(['dnf.DnfRepoTest.test_dnf_install_from_disk']) 103 @OETestDepends(['dnf.DnfRepoTest.test_dnf_install_from_disk'])
109 def test_dnf_install_from_http(self): 104 def test_dnf_install_from_http(self):
110 output = subprocess.check_output('%s %s -name run-postinsts-dev*' % (bb.utils.which(os.getenv('PATH'), "find"), 105 output = subprocess.check_output('%s %s -name dnf-test-dep*' % (bb.utils.which(os.getenv('PATH'), "find"),
111 os.path.join(self.tc.td['WORKDIR'], 'oe-testimage-repo')), shell=True).decode("utf-8") 106 os.path.join(self.tc.td['WORKDIR'], 'oe-testimage-repo')), shell=True).decode("utf-8")
112 rpm_path = output.split("/")[-2] + "/" + output.split("/")[-1] 107 rpm_path = output.split("/")[-2] + "/" + output.split("/")[-1]
113 url = 'http://%s:%s/%s' %(self.target.server_ip, self.repo_server.port, rpm_path) 108 url = 'http://%s:%s/%s' %(self.target.server_ip, self.repo_server.port, rpm_path)
114 self.dnf_with_repo('remove -y run-postinsts-dev') 109 self.dnf_with_repo('remove -y dnf-test-dep')
115 self.dnf_with_repo('install -y %s' % url) 110 self.dnf_with_repo('install -y %s' % url)
116 111
117 @OETestDepends(['dnf.DnfRepoTest.test_dnf_install']) 112 @OETestDepends(['dnf.DnfRepoTest.test_dnf_install'])
118 def test_dnf_reinstall(self): 113 def test_dnf_reinstall(self):
119 self.dnf_with_repo('reinstall -y run-postinsts-dev') 114 self.dnf_with_repo('reinstall -y dnf-test-main')
120 115
121 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) 116 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache'])
122 @skipIfInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when not enable usrmerge') 117 @skipIfInDataVar('DISTRO_FEATURES', 'usrmerge', 'Test run when not enable usrmerge')
@@ -139,7 +134,7 @@ class DnfRepoTest(DnfTest):
139 self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500) 134 self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500)
140 self.target.run('cp /bin/sh %s/bin' % rootpath, 1500) 135 self.target.run('cp /bin/sh %s/bin' % rootpath, 1500)
141 self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500) 136 self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500)
142 self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox run-postinsts' % rootpath) 137 self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox' % rootpath)
143 status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500) 138 status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500)
144 self.assertEqual(0, status, output) 139 self.assertEqual(0, status, output)
145 status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500) 140 status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500)
@@ -171,7 +166,7 @@ class DnfRepoTest(DnfTest):
171 self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500) 166 self.target.run('cp -r /etc/dnf %s/etc' % rootpath, 1500)
172 self.target.run('cp /bin/sh %s/bin' % rootpath, 1500) 167 self.target.run('cp /bin/sh %s/bin' % rootpath, 1500)
173 self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500) 168 self.target.run('mount -o bind /dev %s/dev/' % rootpath, 1500)
174 self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox run-postinsts' % rootpath) 169 self.dnf_with_repo('install --installroot=%s -v -y --rpmverbosity=debug busybox' % rootpath)
175 status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500) 170 status, output = self.target.run('test -e %s/var/cache/dnf' % rootpath, 1500)
176 self.assertEqual(0, status, output) 171 self.assertEqual(0, status, output)
177 status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500) 172 status, output = self.target.run('test -e %s/bin/busybox' % rootpath, 1500)
@@ -179,15 +174,8 @@ class DnfRepoTest(DnfTest):
179 174
180 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache']) 175 @OETestDepends(['dnf.DnfRepoTest.test_dnf_makecache'])
181 def test_dnf_exclude(self): 176 def test_dnf_exclude(self):
182 excludepkg = 'curl-dev' 177 self.dnf_with_repo('remove -y dnf-test-*')
183 self.dnf_with_repo('install -y curl*') 178 self.dnf_with_repo('install -y --exclude=dnf-test-dep dnf-test-*')
184 self.dnf('list %s' % excludepkg, 0) 179 output = self.dnf('list --installed dnf-test-*')
185 #Avoid remove dependencies to skip some errors on different archs and images 180 self.assertIn("dnf-test-main.", output)
186 self.dnf_with_repo('remove --setopt=clean_requirements_on_remove=0 -y curl*') 181 self.assertNotIn("dnf-test-dev.", output)
187 #check curl-dev is not installed adter removing all curl occurrences
188 status, output = self.target.run('dnf list --installed | grep %s'% excludepkg, 1500)
189 self.assertEqual(1, status, "%s was not removed, is listed as installed"%excludepkg)
190 self.dnf_with_repo('install -y --exclude=%s --exclude=curl-staticdev curl*' % excludepkg)
191 #check curl-dev is not installed after being excluded
192 status, output = self.target.run('dnf list --installed | grep %s'% excludepkg , 1500)
193 self.assertEqual(1, status, "%s was not excluded, is listed as installed"%excludepkg)