[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 09/32] tests/functional: drop 'has_cmd' and 'has_cmds' helpers
From: |
Daniel P . Berrangé |
Subject: |
[PATCH v3 09/32] tests/functional: drop 'has_cmd' and 'has_cmds' helpers |
Date: |
Tue, 17 Dec 2024 15:59:30 +0000 |
The 'which' helper is simpler, not depending on the external 'which'
binary, and is sufficient for test needs.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
tests/functional/qemu_test/__init__.py | 2 +-
tests/functional/qemu_test/cmd.py | 54 ++----------------------
tests/functional/qemu_test/tuxruntest.py | 10 ++---
3 files changed, 9 insertions(+), 57 deletions(-)
diff --git a/tests/functional/qemu_test/__init__.py
b/tests/functional/qemu_test/__init__.py
index 7dee3522f2..fe6cbe3a8a 100644
--- a/tests/functional/qemu_test/__init__.py
+++ b/tests/functional/qemu_test/__init__.py
@@ -8,7 +8,7 @@
from .asset import Asset
from .config import BUILD_DIR
-from .cmd import has_cmd, has_cmds, run_cmd, is_readable_executable_file, \
+from .cmd import run_cmd, is_readable_executable_file, \
interrupt_interactive_console_until_pattern, wait_for_console_pattern, \
exec_command, exec_command_and_wait_for_pattern, get_qemu_img, which
from .testcase import QemuBaseTest, QemuUserTest, QemuSystemTest
diff --git a/tests/functional/qemu_test/cmd.py
b/tests/functional/qemu_test/cmd.py
index 600e0509db..bebcd46dcf 100644
--- a/tests/functional/qemu_test/cmd.py
+++ b/tests/functional/qemu_test/cmd.py
@@ -29,52 +29,6 @@ def which(tool):
return p
return None
-def has_cmd(name, args=None):
- """
- This function is for use in a @skipUnless decorator, e.g.:
-
- @skipUnless(*has_cmd('sudo -n', ('sudo', '-n', 'true')))
- def test_something_that_needs_sudo(self):
- ...
- """
-
- if args is None:
- args = ('which', name)
-
- try:
- _, stderr, exitcode = run_cmd(args)
- except Exception as e:
- exitcode = -1
- stderr = str(e)
-
- if exitcode != 0:
- cmd_line = ' '.join(args)
- err = f'{name} required, but "{cmd_line}" failed: {stderr.strip()}'
- return (False, err)
- else:
- return (True, '')
-
-def has_cmds(*cmds):
- """
- This function is for use in a @skipUnless decorator and
- allows checking for the availability of multiple commands, e.g.:
-
- @skipUnless(*has_cmds(('cmd1', ('cmd1', '--some-parameter')),
- 'cmd2', 'cmd3'))
- def test_something_that_needs_cmd1_and_cmd2(self):
- ...
- """
-
- for cmd in cmds:
- if isinstance(cmd, str):
- cmd = (cmd,)
-
- ok, errstr = has_cmd(*cmd)
- if not ok:
- return (False, errstr)
-
- return (True, '')
-
def run_cmd(args):
subp = subprocess.Popen(args,
stdout=subprocess.PIPE,
@@ -254,7 +208,7 @@ def get_qemu_img(test):
qemu_img = os.path.join(BUILD_DIR, 'qemu-img')
if os.path.exists(qemu_img):
return qemu_img
- (has_system_qemu_img, errmsg) = has_cmd('qemu-img')
- if has_system_qemu_img:
- return 'qemu-img'
- test.skipTest(errmsg)
+ qemu_img = which('qemu-img')
+ if qemu_img is not None:
+ return qemu_img
+ test.skipTest(f"qemu-img not found in {BUILD_DIR} or '$PATH'")
diff --git a/tests/functional/qemu_test/tuxruntest.py
b/tests/functional/qemu_test/tuxruntest.py
index d375f2713b..2e5c6d110c 100644
--- a/tests/functional/qemu_test/tuxruntest.py
+++ b/tests/functional/qemu_test/tuxruntest.py
@@ -15,7 +15,7 @@
from qemu_test import QemuSystemTest
from qemu_test import exec_command_and_wait_for_pattern
from qemu_test import wait_for_console_pattern
-from qemu_test import has_cmd, run_cmd, get_qemu_img
+from qemu_test import which, run_cmd, get_qemu_img
class TuxRunBaselineTest(QemuSystemTest):
@@ -38,10 +38,8 @@ def setUp(self):
super().setUp()
# We need zstd for all the tuxrun tests
- (has_zstd, msg) = has_cmd('zstd')
- if has_zstd is False:
- self.skipTest(msg)
- self.zstd = 'zstd'
+ if which('zstd') is None:
+ self.skipTest("zstd not found in $PATH")
# Pre-init TuxRun specific settings: Most machines work with
# reasonable defaults but we sometimes need to tweak the
@@ -78,7 +76,7 @@ def fetch_tuxrun_assets(self, kernel_asset, rootfs_asset,
dtb_asset=None):
disk_image = self.workdir + "/rootfs.ext4"
- run_cmd([self.zstd, "-f", "-d", disk_image_zst,
+ run_cmd(['zstd', "-f", "-d", disk_image_zst,
"-o", disk_image])
# zstd copies source archive permissions for the output
# file, so must make this writable for QEMU
--
2.46.0
- [PATCH v3 02/32] tests/functional: remove many unused imports, (continued)
- [PATCH v3 02/32] tests/functional: remove many unused imports, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 04/32] tests/functional: remove duplicated 'which' function impl, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 05/32] tests/functional: simplify 'which' implementation, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 03/32] tests/functional: resolve str(Asset) to cache file path, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 06/32] tests/functional: drop 'tesseract_available' helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 07/32] tests/functional: introduce some helpful decorators, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 08/32] tests/functional: switch to new test skip decorators, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 10/32] tests/functional: add helpers for building file paths, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 09/32] tests/functional: drop 'has_cmd' and 'has_cmds' helpers,
Daniel P . Berrangé <=
- [PATCH v3 11/32] tests/functional: switch over to using self.log_file(...), Daniel P . Berrangé, 2024/12/17
- [PATCH v3 12/32] tests/functional: switch over to using self.build_file(...), Daniel P . Berrangé, 2024/12/17
- [PATCH v3 13/32] tests/functional: switch over to using self.data_file(...), Daniel P . Berrangé, 2024/12/17
- [PATCH v3 14/32] tests/functional: switch over to using self.scratch_file(), Daniel P . Berrangé, 2024/12/17
- [PATCH v3 17/32] tests/functional: move uncompress handling into new uncompress.py file, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 18/32] tests/functional: add common zip_extract helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 16/32] tests/functional: move archive handling into new archive.py file, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 20/32] tests/functional: let cpio_extract accept filenames, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 22/32] tests/functional: add 'archive_extract' to QemuBaseTest, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 23/32] tests/functional: convert tests to new archive_extract helper, Daniel P . Berrangé, 2024/12/17