diff options
author | Ross Burton <ross.burton@arm.com> | 2022-09-26 12:16:00 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-09-26 22:04:35 +0100 |
commit | 868eb84303cec5c4865da373ab7e47d9c637da96 (patch) | |
tree | c45c24493c36196e370d7335a8e24ef69851388c /meta/lib | |
parent | 8f4ebf24538e8a5469e5da93ac2b43deb10118fe (diff) | |
download | poky-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.py | 52 |
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) | ||