From 482ed7cd8035233dbe5aa6db1e606fa4b3f03948 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 26 Jan 2024 14:34:54 +0100 Subject: oeqa/runtime/rpm: fail tests if test rpm file cannot be found Discovery of the test file was happening in a class initializer. That block of code cannot fail (it's not a test), and so it falls through to completion even if the needed file could not be found. Then the tests themselves fail later due to class variables not being set, but all information as to why is already lost at that point. This converts the discovery to a helper function called from the tests, so that the function can fail the tests precisely when the problems occur. (From OE-Core rev: 5d7a6ede105ea1efc9c324c7029f9d08dadf7255) Signed-off-by: Alexander Kanavin Signed-off-by: Richard Purdie --- meta/lib/oeqa/runtime/cases/rpm.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'meta/lib/oeqa/runtime/cases/rpm.py') diff --git a/meta/lib/oeqa/runtime/cases/rpm.py b/meta/lib/oeqa/runtime/cases/rpm.py index a4ba4e6769..ea5619ffea 100644 --- a/meta/lib/oeqa/runtime/cases/rpm.py +++ b/meta/lib/oeqa/runtime/cases/rpm.py @@ -80,21 +80,24 @@ class RpmBasicTest(OERuntimeTestCase): class RpmInstallRemoveTest(OERuntimeTestCase): - @classmethod - def setUpClass(cls): - pkgarch = cls.td['TUNE_PKGARCH'].replace('-', '_') - rpmdir = os.path.join(cls.tc.td['DEPLOY_DIR'], 'rpm', pkgarch) + def _find_test_file(self): + pkgarch = self.td['TUNE_PKGARCH'].replace('-', '_') + rpmdir = os.path.join(self.tc.td['DEPLOY_DIR'], 'rpm', pkgarch) # Pick base-passwd-doc as a test file to get installed, because it's small # and it will always be built for standard targets rpm_doc = 'base-passwd-doc-*.%s.rpm' % pkgarch if not os.path.exists(rpmdir): - return + self.fail("Rpm directory {} does not exist".format(rpmdir)) for f in fnmatch.filter(os.listdir(rpmdir), rpm_doc): - cls.test_file = os.path.join(rpmdir, f) - cls.dst = '/tmp/base-passwd-doc.rpm' + self.test_file = os.path.join(rpmdir, f) + break + else: + self.fail("Couldn't find the test rpm file {} in {}".format(rpm_doc, rpmdir)) + self.dst = '/tmp/base-passwd-doc.rpm' @OETestDepends(['rpm.RpmBasicTest.test_rpm_query']) def test_rpm_install(self): + self._find_test_file() self.tc.target.copyTo(self.test_file, self.dst) status, output = self.target.run('rpm -ivh /tmp/base-passwd-doc.rpm') msg = 'Failed to install base-passwd-doc package: %s' % output @@ -117,6 +120,7 @@ class RpmInstallRemoveTest(OERuntimeTestCase): Author: Alexander Kanavin AutomatedBy: Daniel Istrate """ + self._find_test_file() db_files_cmd = 'ls /var/lib/rpm/rpmdb.sqlite*' check_log_cmd = "grep RPM /var/log/messages | wc -l" -- cgit v1.2.3-54-g00ecf