[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 19/31] tests/functional: add common deb_extract helper
From: |
Daniel P . Berrangé |
Subject: |
[PATCH v2 19/31] tests/functional: add common deb_extract helper |
Date: |
Wed, 11 Dec 2024 17:26:35 +0000 |
This mirrors the existing archive_extract, cpio_extract and zip_extract
helpers
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
tests/functional/qemu_test/archive.py | 13 +++++++++++++
tests/functional/qemu_test/linuxkernel.py | 13 ++++---------
2 files changed, 17 insertions(+), 9 deletions(-)
diff --git a/tests/functional/qemu_test/archive.py
b/tests/functional/qemu_test/archive.py
index 06b66701c0..a6fc97a557 100644
--- a/tests/functional/qemu_test/archive.py
+++ b/tests/functional/qemu_test/archive.py
@@ -12,6 +12,8 @@
import tarfile
import zipfile
+from .cmd import run_cmd
+
def tar_extract(archive, dest_dir, member=None):
with tarfile.open(archive) as tf:
@@ -37,3 +39,14 @@ def zip_extract(archive, dest_dir, member=None):
zf.extract(member=member, path=dest_dir)
else:
zf.extractall(path=dest_dir)
+
+def deb_extract(archive, dest_dir, member=None):
+ cwd = os.getcwd()
+ os.chdir(dest_dir)
+ try:
+ (stdout, stderr, ret) = run_cmd(['ar', 't', archive])
+ file_path = stdout.split()[2]
+ run_cmd(['ar', 'x', archive, file_path])
+ tar_extract(file_path, dest_dir, member)
+ finally:
+ os.chdir(cwd)
diff --git a/tests/functional/qemu_test/linuxkernel.py
b/tests/functional/qemu_test/linuxkernel.py
index 2e4f4e35fd..8f2810f3af 100644
--- a/tests/functional/qemu_test/linuxkernel.py
+++ b/tests/functional/qemu_test/linuxkernel.py
@@ -6,8 +6,9 @@
import os
from .testcase import QemuSystemTest
-from .cmd import run_cmd, wait_for_console_pattern
-from .utils import archive_extract
+from .cmd import wait_for_console_pattern
+from .archive import deb_extract
+
class LinuxKernelTest(QemuSystemTest):
KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 '
@@ -37,13 +38,7 @@ def extract_from_deb(self, deb_path, path):
:param path: path within the deb archive of the file to be extracted
:returns: path of the extracted file
"""
- cwd = os.getcwd()
- os.chdir(self.workdir)
- (stdout, stderr, ret) = run_cmd(['ar', 't', deb_path])
- file_path = stdout.split()[2]
- run_cmd(['ar', 'x', deb_path, file_path])
- archive_extract(file_path, self.workdir)
- os.chdir(cwd)
+ deb_extract(deb_path, self.workdir, member="." + path)
# Return complete path to extracted file. Because callers to
# extract_from_deb() specify 'path' with a leading slash, it is
# necessary to use os.path.relpath() as otherwise scratch_file()
--
2.46.0
- Re: [PATCH v2 14/31] tests/functional: switch over to using self.socket_dir(...), (continued)
- [PATCH v2 13/31] tests/functional: switch over to using self.scratch_file(), Daniel P . Berrangé, 2024/12/11
- [PATCH v2 15/31] tests/functional: remove redundant 'rmtree' call, Daniel P . Berrangé, 2024/12/11
- [PATCH v2 16/31] tests/functional: move archive handling into new archive.py file, Daniel P . Berrangé, 2024/12/11
- [PATCH v2 17/31] tests/functional: move uncompress handling into new uncompress.py file, Daniel P . Berrangé, 2024/12/11
- [PATCH v2 18/31] tests/functional: add common zip_extract helper, Daniel P . Berrangé, 2024/12/11
- [PATCH v2 19/31] tests/functional: add common deb_extract helper,
Daniel P . Berrangé <=
- [PATCH v2 20/31] tests/functional: let cpio_extract accept filenames, Daniel P . Berrangé, 2024/12/11
- [PATCH v2 22/31] tests/functional: add 'archive_extract' to QemuBaseTest, Daniel P . Berrangé, 2024/12/11
- [PATCH v2 21/31] tests/functional: add a generalized archive_extract, Daniel P . Berrangé, 2024/12/11
- [PATCH v2 24/31] tests/functional: add a generalized uncompress helper, Daniel P . Berrangé, 2024/12/11
- [PATCH v2 25/31] tests/functional: add 'uncompress' to QemuBaseTest, Daniel P . Berrangé, 2024/12/11