mirror of
https://github.com/qemu/qemu.git
synced 2025-08-20 16:35:15 +00:00
tests/functional: add 'uncompress' to QemuBaseTest
This helper wrappers utils.uncompress, forcing the use of the scratch directory, to ensure any uncompressed files are cleaned at test termination. Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20241217155953.3950506-26-berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:

committed by
Thomas Huth

parent
dd66e65f05
commit
fd4abcb008
@ -29,6 +29,7 @@ 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
|
||||||
|
from .uncompress import uncompress
|
||||||
|
|
||||||
|
|
||||||
class QemuBaseTest(unittest.TestCase):
|
class QemuBaseTest(unittest.TestCase):
|
||||||
@ -40,6 +41,30 @@ class QemuBaseTest(unittest.TestCase):
|
|||||||
log = None
|
log = None
|
||||||
logdir = None
|
logdir = None
|
||||||
|
|
||||||
|
'''
|
||||||
|
@params compressed: filename, Asset, or file-like object to uncompress
|
||||||
|
@params format: optional compression format (gzip, lzma)
|
||||||
|
|
||||||
|
Uncompresses @compressed into the scratch directory.
|
||||||
|
|
||||||
|
If @format is None, heuristics will be applied to guess the format
|
||||||
|
from the filename or Asset URL. @format must be non-None if @uncompressed
|
||||||
|
is a file-like object.
|
||||||
|
|
||||||
|
Returns the fully qualified path to the uncompressed file
|
||||||
|
'''
|
||||||
|
def uncompress(self, compressed, format=None):
|
||||||
|
self.log.debug(f"Uncompress {compressed} format={format}")
|
||||||
|
if type(compressed) == Asset:
|
||||||
|
compressed.fetch()
|
||||||
|
|
||||||
|
(name, ext) = os.path.splitext(str(compressed))
|
||||||
|
uncompressed = self.scratch_file(os.path.basename(name))
|
||||||
|
|
||||||
|
uncompress(compressed, uncompressed, format)
|
||||||
|
|
||||||
|
return uncompressed
|
||||||
|
|
||||||
'''
|
'''
|
||||||
@params archive: filename, Asset, or file-like object to extract
|
@params archive: filename, Asset, or file-like object to extract
|
||||||
@params format: optional archive format (tar, zip, deb, cpio)
|
@params format: optional archive format (tar, zip, deb, cpio)
|
||||||
|
Reference in New Issue
Block a user