[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 20/32] tests/functional: let cpio_extract accept filenames
From: |
Daniel P . Berrangé |
Subject: |
[PATCH v3 20/32] tests/functional: let cpio_extract accept filenames |
Date: |
Tue, 17 Dec 2024 15:59:41 +0000 |
Currently cpio_extract differs from tar_extract/zip_extract
in that it only allows a file-like object as input. Adapt it
to also support filenames.
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
tests/functional/qemu_test/archive.py | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/tests/functional/qemu_test/archive.py
b/tests/functional/qemu_test/archive.py
index a6fc97a557..bc448dee4a 100644
--- a/tests/functional/qemu_test/archive.py
+++ b/tests/functional/qemu_test/archive.py
@@ -8,7 +8,7 @@
# Thomas Huth <thuth@redhat.com>
import os
-import subprocess
+from subprocess import check_call, run, DEVNULL
import tarfile
import zipfile
@@ -25,12 +25,18 @@ def tar_extract(archive, dest_dir, member=None):
else:
tf.extractall(path=dest_dir)
-def cpio_extract(cpio_handle, output_path):
+def cpio_extract(archive, output_path):
cwd = os.getcwd()
os.chdir(output_path)
- subprocess.run(['cpio', '-i'],
- input=cpio_handle.read(),
- stderr=subprocess.DEVNULL)
+ # Not passing 'check=True' as cpio exits with non-zero
+ # status if the archive contains any device nodes :-(
+ if type(archive) == str:
+ run(['cpio', '-i', '-F', archive],
+ stdout=DEVNULL, stderr=DEVNULL)
+ else:
+ run(['cpio', '-i'],
+ input=archive.read(),
+ stdout=DEVNULL, stderr=DEVNULL)
os.chdir(cwd)
def zip_extract(archive, dest_dir, member=None):
--
2.46.0
- [PATCH v3 08/32] tests/functional: switch to new test skip decorators, (continued)
- [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é, 2024/12/17
- [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é <=
- [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
- [PATCH v3 15/32] tests/functional: remove redundant 'rmtree' call, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 19/32] tests/functional: add common deb_extract helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 24/32] tests/functional: add a generalized uncompress helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 21/32] tests/functional: add a generalized archive_extract, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 25/32] tests/functional: add 'uncompress' to QemuBaseTest, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 26/32] tests/functional: convert tests to new uncompress helper, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 27/32] tests/functional: drop back compat imports from utils.py, Daniel P . Berrangé, 2024/12/17
- [PATCH v3 28/32] tests/functional: replace 'run_cmd' with subprocess helpers, Daniel P . Berrangé, 2024/12/17