From: Alexander Kanavin <alex.kanavin@gmail.com>
To: openembedded-core@lists.openembedded.org
Cc: Alexander Kanavin <alex@linutronix.de>
Subject: [PATCH 7/8] oeqa/runtime/rpm: fail tests if test rpm file cannot be found
Date: Fri, 26 Jan 2024 14:34:54 +0100 [thread overview]
Message-ID: <20240126133455.2609378-7-alex@linutronix.de> (raw)
In-Reply-To: <20240126133455.2609378-1-alex@linutronix.de>
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.
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
meta/lib/oeqa/runtime/cases/rpm.py | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/meta/lib/oeqa/runtime/cases/rpm.py b/meta/lib/oeqa/runtime/cases/rpm.py
index a4ba4e67698..ea5619ffea4 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 <alex.kanavin@gmail.com>
AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com>
"""
+ self._find_test_file()
db_files_cmd = 'ls /var/lib/rpm/rpmdb.sqlite*'
check_log_cmd = "grep RPM /var/log/messages | wc -l"
--
2.39.2
next prev parent reply other threads:[~2024-01-26 13:35 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-26 13:34 [PATCH 1/8] sysroot user management postinsts: run with /bin/sh -e to report errors when they happen Alexander Kanavin
2024-01-26 13:34 ` [PATCH 2/8] classes/multilib: expand PACKAGE_WRITE_DEPS in addition to DEPENDS Alexander Kanavin
2024-01-26 13:34 ` [PATCH 3/8] classes/staging: capture output of sysroot postinsts into logs Alexander Kanavin
2024-01-26 13:34 ` [PATCH 4/8] classes/package_rpm: write file permissions and ownership explicitly into .spec Alexander Kanavin
2024-01-26 13:34 ` [PATCH 5/8] classes/package_rpm: use weak user/group dependencies Alexander Kanavin
2024-01-26 13:34 ` [PATCH 6/8] classes/package_rpm: set bogus locations for passwd/group files Alexander Kanavin
2024-01-26 13:34 ` Alexander Kanavin [this message]
2024-01-26 14:11 ` [OE-core] [PATCH 7/8] oeqa/runtime/rpm: fail tests if test rpm file cannot be found Richard Purdie
2024-01-26 14:21 ` Alexander Kanavin
2024-01-26 13:34 ` [PATCH 8/8] rpm: update 4.18.1 -> 4.19.1 Alexander Kanavin
2024-01-28 16:53 ` [OE-core] " Khem Raj
2024-01-28 19:04 ` Alexander Kanavin
[not found] ` <17AE983A55179990.23935@lists.openembedded.org>
2024-01-29 11:57 ` Alexander Kanavin
2024-01-29 12:11 ` Matt Madison
2024-01-29 12:22 ` Alexander Kanavin
2024-01-29 16:30 ` Matt Madison
2024-01-29 16:44 ` Mark Hatle
2024-02-01 21:10 ` Alexandre Belloni
2024-02-01 21:19 ` Alexander Kanavin
[not found] ` <17AFD9EAEAF14DA0.1968@lists.openembedded.org>
2024-02-02 12:27 ` Alexander Kanavin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240126133455.2609378-7-alex@linutronix.de \
--to=alex.kanavin@gmail.com \
--cc=alex@linutronix.de \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox