diff mbox series

[PULL,08/28] tests/functional: honour self.workdir in ACPI bits tests

Message ID 20241125152105.2100395-9-alex.bennee@linaro.org
State Accepted
Commit 03d6c237ccd98f2873d1dc59287f163ad0eb83ee
Headers show
Series [PULL,01/28] tests/functional: fix mips64el test to honour workdir | expand

Commit Message

Alex Bennée Nov. 25, 2024, 3:20 p.m. UTC
From: Daniel P. Berrangé <berrange@redhat.com>

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>

Comments

Ani Sinha Nov. 26, 2024, 3:59 a.m. UTC | #1
On Mon, Nov 25, 2024 at 8:51 PM Alex Bennée <alex.bennee@linaro.org> wrote:
>
> From: Daniel P. Berrangé <berrange@redhat.com>
>
> 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.

Thanks for fixing this.

Acked-by: Ani Sinha <anisinha@redhat.com>

>
> 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>
>
> diff --git a/tests/functional/test_acpi_bits.py b/tests/functional/test_acpi_bits.py
> index 4c192d95cc..3498b96787 100755
> --- a/tests/functional/test_acpi_bits.py
> +++ b/tests/functional/test_acpi_bits.py
> @@ -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 @@ def copy_bits_config(self):
>          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 @@ def copy_test_scripts(self):
>
>          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 @@ def fix_mkrescue(self, mkrescue):
>              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 @@ def generate_bits_iso(self):
>          """ 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 @@ def setUp(self): # pylint: disable=arguments-differ
>
>          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 @@ def setUp(self): # pylint: disable=arguments-differ
>
>          # 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 @@ def parse_log(self):
>          """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 @@ def tearDown(self):
>          """
>          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)
>
> --
> 2.39.5
>
diff mbox series

Patch

diff --git a/tests/functional/test_acpi_bits.py b/tests/functional/test_acpi_bits.py
index 4c192d95cc..3498b96787 100755
--- a/tests/functional/test_acpi_bits.py
+++ b/tests/functional/test_acpi_bits.py
@@ -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 @@  def copy_bits_config(self):
         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 @@  def copy_test_scripts(self):
 
         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 @@  def fix_mkrescue(self, mkrescue):
             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 @@  def generate_bits_iso(self):
         """ 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 @@  def setUp(self): # pylint: disable=arguments-differ
 
         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 @@  def setUp(self): # pylint: disable=arguments-differ
 
         # 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 @@  def parse_log(self):
         """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 @@  def tearDown(self):
         """
         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)