mirror of https://github.com/xemu-project/xemu.git
tests/functional: honour self.workdir in ACPI bits tests
The ACPI bits test sets up its own private temporary directory into it creates scratch files. This is justified by a suggestion that we need to be able to preserve the scratch files. We have the ability to preserve the scratch dir with our functional harness, so there's no reason to diverge from standard practice in file placement. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Message-Id: <20241121154218.1423005-9-berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20241121165806.476008-9-alex.bennee@linaro.org>
This commit is contained in:
parent
ebc88b2d54
commit
03d6c237cc
tests/functional
|
@ -150,7 +150,6 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self._vm = None
|
||||
self._workDir = None
|
||||
self._baseDir = None
|
||||
|
||||
self._debugcon_addr = '0x403'
|
||||
|
@ -169,7 +168,7 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
config_file = 'bits-cfg.txt'
|
||||
bits_config_dir = os.path.join(self._baseDir, 'acpi-bits',
|
||||
'bits-config')
|
||||
target_config_dir = os.path.join(self._workDir,
|
||||
target_config_dir = os.path.join(self.workdir,
|
||||
'bits-%d' %self.BITS_INTERNAL_VER,
|
||||
'boot')
|
||||
self.assertTrue(os.path.exists(bits_config_dir))
|
||||
|
@ -186,7 +185,7 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
|
||||
bits_test_dir = os.path.join(self._baseDir, 'acpi-bits',
|
||||
'bits-tests')
|
||||
target_test_dir = os.path.join(self._workDir,
|
||||
target_test_dir = os.path.join(self.workdir,
|
||||
'bits-%d' %self.BITS_INTERNAL_VER,
|
||||
'boot', 'python')
|
||||
|
||||
|
@ -225,8 +224,8 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
the directory where we have extracted our pre-built bits grub
|
||||
tarball.
|
||||
"""
|
||||
grub_x86_64_mods = os.path.join(self._workDir, 'grub-inst-x86_64-efi')
|
||||
grub_i386_mods = os.path.join(self._workDir, 'grub-inst')
|
||||
grub_x86_64_mods = os.path.join(self.workdir, 'grub-inst-x86_64-efi')
|
||||
grub_i386_mods = os.path.join(self.workdir, 'grub-inst')
|
||||
|
||||
self.assertTrue(os.path.exists(grub_x86_64_mods))
|
||||
self.assertTrue(os.path.exists(grub_i386_mods))
|
||||
|
@ -247,11 +246,11 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
""" Uses grub-mkrescue to generate a fresh bits iso with the python
|
||||
test scripts
|
||||
"""
|
||||
bits_dir = os.path.join(self._workDir,
|
||||
bits_dir = os.path.join(self.workdir,
|
||||
'bits-%d' %self.BITS_INTERNAL_VER)
|
||||
iso_file = os.path.join(self._workDir,
|
||||
iso_file = os.path.join(self.workdir,
|
||||
'bits-%d.iso' %self.BITS_INTERNAL_VER)
|
||||
mkrescue_script = os.path.join(self._workDir,
|
||||
mkrescue_script = os.path.join(self.workdir,
|
||||
'grub-inst-x86_64-efi', 'bin',
|
||||
'grub-mkrescue')
|
||||
|
||||
|
@ -290,17 +289,7 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
|
||||
self._baseDir = Path(__file__).parent
|
||||
|
||||
# workdir could also be avocado's own workdir in self.workdir.
|
||||
# At present, I prefer to maintain my own temporary working
|
||||
# directory. It gives us more control over the generated bits
|
||||
# log files and also for debugging, we may chose not to remove
|
||||
# this working directory so that the logs and iso can be
|
||||
# inspected manually and archived if needed.
|
||||
self._workDir = tempfile.mkdtemp(prefix='acpi-bits-',
|
||||
suffix='.tmp')
|
||||
self.logger.info('working dir: %s', self._workDir)
|
||||
|
||||
prebuiltDir = os.path.join(self._workDir, 'prebuilt')
|
||||
prebuiltDir = os.path.join(self.workdir, 'prebuilt')
|
||||
if not os.path.isdir(prebuiltDir):
|
||||
os.mkdir(prebuiltDir, mode=0o775)
|
||||
|
||||
|
@ -321,10 +310,10 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
|
||||
# extract the bits software in the temp working directory
|
||||
with zipfile.ZipFile(bits_zip_file, 'r') as zref:
|
||||
zref.extractall(self._workDir)
|
||||
zref.extractall(self.workdir)
|
||||
|
||||
with tarfile.open(grub_tar_file, 'r', encoding='utf-8') as tarball:
|
||||
tarball.extractall(self._workDir)
|
||||
tarball.extractall(self.workdir)
|
||||
|
||||
self.copy_test_scripts()
|
||||
self.copy_bits_config()
|
||||
|
@ -334,7 +323,7 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
"""parse the log generated by running bits tests and
|
||||
check for failures.
|
||||
"""
|
||||
debugconf = os.path.join(self._workDir, self._debugcon_log)
|
||||
debugconf = os.path.join(self.workdir, self._debugcon_log)
|
||||
log = ""
|
||||
with open(debugconf, 'r', encoding='utf-8') as filehandle:
|
||||
log = filehandle.read()
|
||||
|
@ -360,25 +349,18 @@ class AcpiBitsTest(QemuBaseTest): #pylint: disable=too-many-instance-attributes
|
|||
"""
|
||||
if self._vm:
|
||||
self.assertFalse(not self._vm.is_running)
|
||||
if not os.getenv('BITS_DEBUG') and self._workDir:
|
||||
self.logger.info('removing the work directory %s', self._workDir)
|
||||
shutil.rmtree(self._workDir)
|
||||
else:
|
||||
self.logger.info('not removing the work directory %s ' \
|
||||
'as BITS_DEBUG is ' \
|
||||
'passed in the environment', self._workDir)
|
||||
super().tearDown()
|
||||
|
||||
def test_acpi_smbios_bits(self):
|
||||
"""The main test case implementation."""
|
||||
|
||||
iso_file = os.path.join(self._workDir,
|
||||
iso_file = os.path.join(self.workdir,
|
||||
'bits-%d.iso' %self.BITS_INTERNAL_VER)
|
||||
|
||||
self.assertTrue(os.access(iso_file, os.R_OK))
|
||||
|
||||
self._vm = QEMUBitsMachine(binary=self.qemu_bin,
|
||||
base_temp_dir=self._workDir,
|
||||
base_temp_dir=self.workdir,
|
||||
debugcon_log=self._debugcon_log,
|
||||
debugcon_addr=self._debugcon_addr)
|
||||
|
||||
|
|
Loading…
Reference in New Issue