Commit 2b17d81f authored by Philippe Mathieu-Daudé's avatar Philippe Mathieu-Daudé Committed by Cleber Rosa
Browse files

tests/acceptance: Refactor exec_command_and_wait_for_pattern()



Refactor the exec_command_and_wait_for_pattern() utility method
so we can reuse it in other files.

Signed-off-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20191028073441.6448-6-philmd@redhat.com>
Reviewed-by: default avatarCleber Rosa <crosa@redhat.com>
Tested-by: default avatarCleber Rosa <crosa@redhat.com>
Signed-off-by: default avatarCleber Rosa <crosa@redhat.com>
parent 6b5720d5
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -80,6 +80,25 @@ def wait_for_console_pattern(test, success_message, failure_message=None):
            test.fail(fail)


def exec_command_and_wait_for_pattern(test, command,
                                      success_message, failure_message=None):
    """
    Send a command to a console (appending CRLF characters), then wait
    for success_message to appear on the console, while logging the.
    content. Mark the test as failed if failure_message is found instead.

    :param test: an Avocado test containing a VM that will have its console
                 read and probed for a success or failure message
    :type test: :class:`avocado_qemu.Test`
    :param command: the command to send
    :param success_message: if this message appears, test succeeds
    :param failure_message: if this message appears, test fails
    """
    command += '\r'
    test.vm.console_socket.sendall(command.encode())
    wait_for_console_pattern(test, success_message, failure_message)


class Test(avocado.Test):
    def setUp(self):
        self._vms = {}
+7 −11
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ import gzip
import shutil

from avocado_qemu import Test
from avocado_qemu import exec_command_and_wait_for_pattern
from avocado_qemu import wait_for_console_pattern
from avocado.utils import process
from avocado.utils import archive
@@ -33,11 +34,6 @@ class BootLinuxConsole(Test):
        wait_for_console_pattern(self, success_message,
                                 failure_message='Kernel panic - not syncing')

    def exec_command_and_wait_for_pattern(self, command, success_message):
        command += '\r'
        self.vm.console_socket.sendall(command.encode())
        wait_for_console_pattern(self, success_message)

    def extract_from_deb(self, deb, path):
        """
        Extracts a file from a deb package into the test workdir
@@ -166,11 +162,11 @@ class BootLinuxConsole(Test):
        self.vm.launch()
        self.wait_for_console_pattern('Boot successful.')

        self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo',
        exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo',
                                                'BogoMIPS')
        self.exec_command_and_wait_for_pattern('uname -a',
        exec_command_and_wait_for_pattern(self, 'uname -a',
                                                'Debian')
        self.exec_command_and_wait_for_pattern('reboot',
        exec_command_and_wait_for_pattern(self, 'reboot',
                                                'reboot: Restarting system')

    def do_test_mips_malta32el_nanomips(self, kernel_url, kernel_hash):