mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-29 21:12:07 -06:00
tests/functional: add 'archive_extract' to QemuBaseTest
This helper wrappers archive.archive_extract, forcing the use of the scratch directory, to ensure any extracted files are cleaned at test termination. If a specific member is requested, then the path to the extracted file is also returned. Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20241217155953.3950506-23-berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
c283afbf65
commit
239fd29d6f
1 changed files with 32 additions and 0 deletions
|
@ -25,6 +25,7 @@ import uuid
|
||||||
from qemu.machine import QEMUMachine
|
from qemu.machine import QEMUMachine
|
||||||
from qemu.utils import kvm_available, tcg_available
|
from qemu.utils import kvm_available, tcg_available
|
||||||
|
|
||||||
|
from .archive import archive_extract
|
||||||
from .asset import Asset
|
from .asset import Asset
|
||||||
from .cmd import run_cmd
|
from .cmd import run_cmd
|
||||||
from .config import BUILD_DIR
|
from .config import BUILD_DIR
|
||||||
|
@ -39,6 +40,37 @@ class QemuBaseTest(unittest.TestCase):
|
||||||
log = None
|
log = None
|
||||||
logdir = None
|
logdir = None
|
||||||
|
|
||||||
|
'''
|
||||||
|
@params archive: filename, Asset, or file-like object to extract
|
||||||
|
@params format: optional archive format (tar, zip, deb, cpio)
|
||||||
|
@params sub_dir: optional sub-directory to extract into
|
||||||
|
@params member: optional member file to limit extraction to
|
||||||
|
|
||||||
|
Extracts @archive into the scratch directory, or a directory beneath
|
||||||
|
named by @sub_dir. All files are extracted unless @member specifies
|
||||||
|
a limit.
|
||||||
|
|
||||||
|
If @format is None, heuristics will be applied to guess the format
|
||||||
|
from the filename or Asset URL. @format must be non-None if @archive
|
||||||
|
is a file-like object.
|
||||||
|
|
||||||
|
If @member is non-None, returns the fully qualified path to @member
|
||||||
|
'''
|
||||||
|
def archive_extract(self, archive, format=None, sub_dir=None, member=None):
|
||||||
|
self.log.debug(f"Extract {archive} format={format}" +
|
||||||
|
f"sub_dir={sub_dir} member={member}")
|
||||||
|
if type(archive) == Asset:
|
||||||
|
archive.fetch()
|
||||||
|
if sub_dir is None:
|
||||||
|
archive_extract(archive, self.scratch_file(), format, member)
|
||||||
|
else:
|
||||||
|
archive_extract(archive, self.scratch_file(sub_dir),
|
||||||
|
format, member)
|
||||||
|
|
||||||
|
if member is not None:
|
||||||
|
return self.scratch_file(member)
|
||||||
|
return None
|
||||||
|
|
||||||
'''
|
'''
|
||||||
Create a temporary directory suitable for storing UNIX
|
Create a temporary directory suitable for storing UNIX
|
||||||
socket paths.
|
socket paths.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue