Commit a0690c39 authored by John Snow's avatar John Snow Committed by Philippe Mathieu-Daudé
Browse files

tests/acceptance: wait() instead of shutdown() where appropriate



When issuing 'reboot' to a VM with the no-reboot option, that VM will
exit. When then issuing a shutdown command, the cleanup may race.

Add calls to vm.wait() which will gracefully mark the VM as having
exited. Subsequent vm.shutdown() calls in generic tearDown code will not
race when called after completion of the call.

Signed-off-by: default avatarJohn Snow <jsnow@redhat.com>
Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: default avatarCleber Rosa <crosa@redhat.com>
Tested-by: default avatarCleber Rosa <crosa@redhat.com>
Message-Id: <20200710050649.32434-9-jsnow@redhat.com>
Signed-off-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
parent 89528059
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -191,6 +191,8 @@ class BootLinuxConsole(LinuxKernelTest):
                                                'Debian')
        exec_command_and_wait_for_pattern(self, 'reboot',
                                                'reboot: Restarting system')
        # Wait for VM to shut down gracefully
        self.vm.wait()

    @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
    def test_mips64el_malta_5KEc_cpio(self):
@@ -231,6 +233,8 @@ class BootLinuxConsole(LinuxKernelTest):
                                                '3.19.3.mtoman.20150408')
        exec_command_and_wait_for_pattern(self, 'reboot',
                                                'reboot: Restarting system')
        # Wait for VM to shut down gracefully
        self.vm.wait()

    def do_test_mips_malta32el_nanomips(self, kernel_url, kernel_hash):
        kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
@@ -506,6 +510,7 @@ class BootLinuxConsole(LinuxKernelTest):
                                                'system-control@1c00000')
        exec_command_and_wait_for_pattern(self, 'reboot',
                                                'reboot: Restarting system')
        # NB: Do not issue vm.wait() here, cubieboard's reboot does not exit!

    def test_arm_cubieboard_sata(self):
        """
@@ -550,6 +555,7 @@ class BootLinuxConsole(LinuxKernelTest):
                                                'sda')
        exec_command_and_wait_for_pattern(self, 'reboot',
                                                'reboot: Restarting system')
        # NB: Do not issue vm.wait() here, cubieboard's reboot does not exit!

    def test_arm_orangepi(self):
        """
@@ -615,6 +621,8 @@ class BootLinuxConsole(LinuxKernelTest):
                                                'system-control@1c00000')
        exec_command_and_wait_for_pattern(self, 'reboot',
                                                'reboot: Restarting system')
        # Wait for VM to shut down gracefully
        self.vm.wait()

    def test_arm_orangepi_sd(self):
        """
@@ -662,6 +670,8 @@ class BootLinuxConsole(LinuxKernelTest):
            '3 packets transmitted, 3 packets received, 0% packet loss')
        exec_command_and_wait_for_pattern(self, 'reboot',
                                                'reboot: Restarting system')
        # Wait for VM to shut down gracefully
        self.vm.wait()

    @skipUnless(os.getenv('AVOCADO_ALLOW_LARGE_STORAGE'), 'storage limited')
    @skipUnless(P7ZIP_AVAILABLE, '7z not installed')
+2 −0
Original line number Diff line number Diff line
@@ -212,6 +212,8 @@ class LinuxSSH(Test):

        self.run_common_commands(wordsize)
        self.shutdown_via_ssh()
        # Wait for VM to shut down gracefully
        self.vm.wait()

    def test_mips_malta32eb_kernel3_2_0(self):
        """