On Mon, May 3, 2021 at 7:43 PM Wainer dos Santos Moschetta <waine...@redhat.com> wrote: > > It was the time of exec_command_and_wait_for_pattern() to find a new > home at ConsoleMixIn. This time various tests needed to be adapted. > > Signed-off-by: Wainer dos Santos Moschetta <waine...@redhat.com> > --- > tests/acceptance/avocado_qemu/__init__.py | 29 +++--- > tests/acceptance/boot_linux_console.py | 107 ++++++++++---------- > tests/acceptance/machine_rx_gdbsim.py | 8 +- > tests/acceptance/machine_s390_ccw_virtio.py | 72 ++++++------- > tests/acceptance/multiprocess.py | 3 +- > tests/acceptance/virtio-gpu.py | 12 +-- > 6 files changed, 111 insertions(+), 120 deletions(-) > > diff --git a/tests/acceptance/avocado_qemu/__init__.py > b/tests/acceptance/avocado_qemu/__init__.py > index 4d3b869765..4a0129c0eb 100644 > --- a/tests/acceptance/avocado_qemu/__init__.py > +++ b/tests/acceptance/avocado_qemu/__init__.py > @@ -114,22 +114,6 @@ def wait_for_console_pattern(test, success_message, > failure_message=None, > """ > _console_interaction(test, success_message, failure_message, None, vm=vm) > > -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 > - """ > - _console_interaction(test, success_message, failure_message, command + > '\r') > - > class ConsoleMixIn(): > """Contains utilities for interacting with a guest via Console.""" > > @@ -143,6 +127,19 @@ def exec_command(self, command): > """ > _console_interaction(self, None, None, command + '\r') > > + def exec_command_and_wait_for_pattern(self, 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 command: the command to send > + :param success_message: if this message appears, test succeeds > + :param failure_message: if this message appears, test fails > + """ > + _console_interaction(self, success_message, failure_message, command > + '\r') > + > def interrupt_interactive_console_until_pattern(self, success_message, > failure_message=None, > interrupt_string='\r'): > diff --git a/tests/acceptance/boot_linux_console.py > b/tests/acceptance/boot_linux_console.py > index 10317b232b..50e0a3fe79 100644 > --- a/tests/acceptance/boot_linux_console.py > +++ b/tests/acceptance/boot_linux_console.py > @@ -16,7 +16,6 @@ > from avocado import skip > from avocado import skipUnless > from avocado_qemu import Test > -from avocado_qemu import exec_command_and_wait_for_pattern > from avocado_qemu import ConsoleMixIn > from avocado_qemu import wait_for_console_pattern > from avocado.utils import process > @@ -223,12 +222,12 @@ def test_mips_malta_cpio(self): > self.vm.launch() > self.wait_for_console_pattern('Boot successful.') > > - exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', > - 'BogoMIPS') > - exec_command_and_wait_for_pattern(self, 'uname -a', > - 'Debian') > - exec_command_and_wait_for_pattern(self, 'reboot', > - 'reboot: Restarting system') > + self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo', > + 'BogoMIPS') > + self.exec_command_and_wait_for_pattern('uname -a', > + 'Debian') > + self.exec_command_and_wait_for_pattern('reboot', > + 'reboot: Restarting system') > # Wait for VM to shut down gracefully > self.vm.wait() > > @@ -265,12 +264,12 @@ def test_mips64el_malta_5KEc_cpio(self): > self.vm.launch() > wait_for_console_pattern(self, 'Boot successful.') > > - exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', > - 'MIPS 5KE') > - exec_command_and_wait_for_pattern(self, 'uname -a', > - '3.19.3.mtoman.20150408') > - exec_command_and_wait_for_pattern(self, 'reboot', > - 'reboot: Restarting system') > + self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo', > + 'MIPS 5KE') > + self.exec_command_and_wait_for_pattern('uname -a', > + '3.19.3.mtoman.20150408') > + self.exec_command_and_wait_for_pattern('reboot', > + 'reboot: Restarting system') > # Wait for VM to shut down gracefully > self.vm.wait() > > @@ -422,9 +421,9 @@ def test_arm_emcraft_sf2(self): > self.vm.launch() > self.wait_for_console_pattern('Enter \'help\' for a list') > > - exec_command_and_wait_for_pattern(self, 'ifconfig eth0 10.0.2.15', > - 'eth0: link becomes ready') > - exec_command_and_wait_for_pattern(self, 'ping -c 3 10.0.2.2', > + self.exec_command_and_wait_for_pattern('ifconfig eth0 10.0.2.15', > + 'eth0: link becomes ready') > + self.exec_command_and_wait_for_pattern('ping -c 3 10.0.2.2', > '3 packets transmitted, 3 packets received, 0% packet loss') > > def do_test_arm_raspi2(self, uart_id): > @@ -541,10 +540,10 @@ def test_arm_cubieboard_initrd(self): > self.vm.launch() > self.wait_for_console_pattern('Boot successful.') > > - exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', > - 'Allwinner sun4i/sun5i') > - exec_command_and_wait_for_pattern(self, 'cat /proc/iomem', > - 'system-control@1c00000') > + self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo', > + 'Allwinner sun4i/sun5i') > + self.exec_command_and_wait_for_pattern('cat /proc/iomem', > + 'system-control@1c00000') > # cubieboard's reboot is not functioning; omit reboot test. > > def test_arm_cubieboard_sata(self): > @@ -584,10 +583,10 @@ def test_arm_cubieboard_sata(self): > self.vm.launch() > self.wait_for_console_pattern('Boot successful.') > > - exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', > - 'Allwinner sun4i/sun5i') > - exec_command_and_wait_for_pattern(self, 'cat /proc/partitions', > - 'sda') > + self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo', > + 'Allwinner sun4i/sun5i') > + self.exec_command_and_wait_for_pattern('cat /proc/partitions', > + 'sda') > # cubieboard's reboot is not functioning; omit reboot test. > > @skipUnless(os.getenv('AVOCADO_TIMEOUT_EXPECTED'), 'Test might timeout') > @@ -628,11 +627,11 @@ def test_arm_quanta_gsj(self): > self.wait_for_console_pattern('U-Boot ') > self.interrupt_interactive_console_until_pattern( > 'Hit any key to stop autoboot:', 'U-Boot>') > - exec_command_and_wait_for_pattern( > - self, "setenv bootargs ${bootargs} " + kernel_command_line, > + self.exec_command_and_wait_for_pattern( > + "setenv bootargs ${bootargs} " + kernel_command_line, > 'U-Boot>') > - exec_command_and_wait_for_pattern( > - self, 'run romboot', 'Booting Kernel from flash') > + self.exec_command_and_wait_for_pattern( > + 'run romboot', 'Booting Kernel from flash') > self.wait_for_console_pattern('Booting Linux on physical CPU 0x0') > self.wait_for_console_pattern('CPU1: thread -1, cpu 1, socket 0') > self.wait_for_console_pattern('OpenBMC Project Reference Distro') > @@ -732,12 +731,12 @@ def test_arm_orangepi_initrd(self): > self.vm.launch() > self.wait_for_console_pattern('Boot successful.') > > - exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', > - 'Allwinner sun8i Family') > - exec_command_and_wait_for_pattern(self, 'cat /proc/iomem', > - 'system-control@1c00000') > - exec_command_and_wait_for_pattern(self, 'reboot', > - 'reboot: Restarting system') > + self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo', > + 'Allwinner sun8i Family') > + self.exec_command_and_wait_for_pattern('cat /proc/iomem', > + 'system-control@1c00000') > + self.exec_command_and_wait_for_pattern('reboot', > + 'reboot: Restarting system') > # Wait for VM to shut down gracefully > self.vm.wait() > > @@ -777,18 +776,18 @@ def test_arm_orangepi_sd(self): > shell_ready = "/bin/sh: can't access tty; job control turned off" > self.wait_for_console_pattern(shell_ready) > > - exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', > - 'Allwinner sun8i Family') > - exec_command_and_wait_for_pattern(self, 'cat /proc/partitions', > - 'mmcblk0') > - exec_command_and_wait_for_pattern(self, 'ifconfig eth0 up', > - 'eth0: Link is Up') > - exec_command_and_wait_for_pattern(self, 'udhcpc eth0', > + self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo', > + 'Allwinner sun8i Family') > + self.exec_command_and_wait_for_pattern('cat /proc/partitions', > + 'mmcblk0') > + self.exec_command_and_wait_for_pattern('ifconfig eth0 up', > + 'eth0: Link is Up') > + self.exec_command_and_wait_for_pattern('udhcpc eth0', > 'udhcpc: lease of 10.0.2.15 obtained') > - exec_command_and_wait_for_pattern(self, 'ping -c 3 10.0.2.2', > + self.exec_command_and_wait_for_pattern('ping -c 3 10.0.2.2', > '3 packets transmitted, 3 packets received, 0% packet loss') > - exec_command_and_wait_for_pattern(self, 'reboot', > - 'reboot: Restarting system') > + self.exec_command_and_wait_for_pattern('reboot', > + 'reboot: Restarting system') > # Wait for VM to shut down gracefully > self.vm.wait() > > @@ -829,10 +828,10 @@ def test_arm_orangepi_bionic_20_08(self): > > self.wait_for_console_pattern('U-Boot SPL') > self.wait_for_console_pattern('Autoboot in ') > - exec_command_and_wait_for_pattern(self, ' ', '=>') > - exec_command_and_wait_for_pattern(self, "setenv extraargs '" + > - kernel_command_line + "'", > '=>') > - exec_command_and_wait_for_pattern(self, 'boot', 'Starting kernel > ...'); > + self.exec_command_and_wait_for_pattern(' ', '=>') > + self.exec_command_and_wait_for_pattern("setenv extraargs '" + > + kernel_command_line + "'", > '=>') > + self.exec_command_and_wait_for_pattern('boot', 'Starting kernel > ...'); > > self.wait_for_console_pattern('systemd[1]: Set hostname ' + > 'to <orangepipc>') > @@ -883,20 +882,20 @@ def test_arm_orangepi_uboot_netbsd9(self): > 'Hit any key to stop autoboot:', > 'switch to partitions #0, OK') > > - exec_command_and_wait_for_pattern(self, '', '=>') > + self.exec_command_and_wait_for_pattern('', '=>') > cmd = 'setenv bootargs root=ld0a' > - exec_command_and_wait_for_pattern(self, cmd, '=>') > + self.exec_command_and_wait_for_pattern(cmd, '=>') > cmd = 'setenv kernel netbsd-GENERIC.ub' > - exec_command_and_wait_for_pattern(self, cmd, '=>') > + self.exec_command_and_wait_for_pattern(cmd, '=>') > cmd = 'setenv fdtfile dtb/sun8i-h3-orangepi-pc.dtb' > - exec_command_and_wait_for_pattern(self, cmd, '=>') > + self.exec_command_and_wait_for_pattern(cmd, '=>') > cmd = ("setenv bootcmd 'fatload mmc 0:1 ${kernel_addr_r} ${kernel}; " > "fatload mmc 0:1 ${fdt_addr_r} ${fdtfile}; " > "fdt addr ${fdt_addr_r}; " > "bootm ${kernel_addr_r} - ${fdt_addr_r}'") > - exec_command_and_wait_for_pattern(self, cmd, '=>') > + self.exec_command_and_wait_for_pattern(cmd, '=>') > > - exec_command_and_wait_for_pattern(self, 'boot', > + self.exec_command_and_wait_for_pattern('boot', > 'Booting kernel from Legacy Image') > wait_for_console_pattern(self, 'Starting kernel ...') > wait_for_console_pattern(self, 'NetBSD 9.0 (GENERIC)') > diff --git a/tests/acceptance/machine_rx_gdbsim.py > b/tests/acceptance/machine_rx_gdbsim.py > index 32b737b6d8..a893273bad 100644 > --- a/tests/acceptance/machine_rx_gdbsim.py > +++ b/tests/acceptance/machine_rx_gdbsim.py > @@ -12,12 +12,12 @@ > > from avocado import skipIf > from avocado_qemu import Test > -from avocado_qemu import exec_command_and_wait_for_pattern > +from avocado_qemu import ConsoleMixIn > from avocado_qemu import wait_for_console_pattern > from avocado.utils import archive > > > -class RxGdbSimMachine(Test): > +class RxGdbSimMachine(Test, ConsoleMixIn):
Same comment here regarding the class order from the previous two patches. > > timeout = 30 > KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 ' > @@ -44,7 +44,7 @@ def test_uboot(self): > wait_for_console_pattern(self, uboot_version) > gcc_version = 'rx-unknown-linux-gcc (GCC) 9.0.0 20181105 > (experimental)' > # FIXME limit baudrate on chardev, else we type too fast > - #exec_command_and_wait_for_pattern(self, 'version', gcc_version) > + #self.exec_command_and_wait_for_pattern('version', gcc_version) > > @skipIf(os.getenv('GITLAB_CI'), 'Running on GitLab') > def test_linux_sash(self): > @@ -70,4 +70,4 @@ def test_linux_sash(self): > self.vm.launch() > wait_for_console_pattern(self, 'Sash command shell (version 1.1.1)', > failure_message='Kernel panic - not > syncing') > - exec_command_and_wait_for_pattern(self, 'printenv', 'TERM=linux') > + self.exec_command_and_wait_for_pattern('printenv', 'TERM=linux') > diff --git a/tests/acceptance/machine_s390_ccw_virtio.py > b/tests/acceptance/machine_s390_ccw_virtio.py > index 4028c99afc..537393c42f 100644 > --- a/tests/acceptance/machine_s390_ccw_virtio.py > +++ b/tests/acceptance/machine_s390_ccw_virtio.py > @@ -14,11 +14,11 @@ > > from avocado import skipIf > from avocado_qemu import Test > -from avocado_qemu import exec_command_and_wait_for_pattern > +from avocado_qemu import ConsoleMixIn > from avocado_qemu import wait_for_console_pattern > from avocado.utils import archive > > -class S390CCWVirtioMachine(Test): > +class S390CCWVirtioMachine(Test, ConsoleMixIn): Same here! > KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 ' > > timeout = 120 > @@ -29,13 +29,13 @@ def wait_for_console_pattern(self, success_message, > vm=None): > vm=vm) > > def wait_for_crw_reports(self): > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'while ! (dmesg -c | grep CRW) ; do sleep 1 ; done', > 'CRW reports') > > dmesg_clear_count = 1 > def clear_guest_dmesg(self): > - exec_command_and_wait_for_pattern(self, 'dmesg -c > /dev/null; ' > + self.exec_command_and_wait_for_pattern('dmesg -c > /dev/null; ' > 'echo dm_clear\ ' + str(self.dmesg_clear_count), > 'dm_clear ' + str(self.dmesg_clear_count)) > self.dmesg_clear_count += 1 > @@ -81,13 +81,13 @@ def test_s390x_devices(self): > shell_ready = "sh: can't access tty; job control turned off" > self.wait_for_console_pattern(shell_ready) > # first debug shell is too early, we need to wait for device > detection > - exec_command_and_wait_for_pattern(self, 'exit', shell_ready) > + self.exec_command_and_wait_for_pattern('exit', shell_ready) > > ccw_bus_ids="0.1.1111 0.2.0000 0.3.1234" > pci_bus_ids="0005:00:00.0 000a:00:00.0" > - exec_command_and_wait_for_pattern(self, 'ls /sys/bus/ccw/devices/', > + self.exec_command_and_wait_for_pattern('ls /sys/bus/ccw/devices/', > ccw_bus_ids) > - exec_command_and_wait_for_pattern(self, 'ls /sys/bus/pci/devices/', > + self.exec_command_and_wait_for_pattern('ls /sys/bus/pci/devices/', > pci_bus_ids) > # check that the device at 0.2.0000 is in legacy mode, while the > # device at 0.3.1234 has the virtio-1 feature bit set > @@ -95,14 +95,14 @@ def test_s390x_devices(self): > "10000000000000000000000000000000" > virtio_rng_features_legacy="00000000000000000000000000001100" + \ > "00000000000000000000000000000000" > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'cat /sys/bus/ccw/devices/0.2.0000/virtio?/features', > virtio_rng_features_legacy) > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'cat /sys/bus/ccw/devices/0.3.1234/virtio?/features', > virtio_rng_features) > # check that /dev/hwrng works - and that it's gone after ejecting > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'dd if=/dev/hwrng of=/dev/null bs=1k count=10', > '10+0 records out') > self.clear_guest_dmesg() > @@ -111,22 +111,22 @@ def test_s390x_devices(self): > self.clear_guest_dmesg() > self.vm.command('device_del', id='rn2') > self.wait_for_crw_reports() > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'dd if=/dev/hwrng of=/dev/null bs=1k count=10', > 'dd: /dev/hwrng: No such device') > # verify that we indeed have virtio-net devices (without having the > # virtio-net driver handy) > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'cat > /sys/bus/ccw/devices/0.1.1111/cutype', > '3832/01') > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'cat > /sys/bus/pci/devices/0005\:00\:00.0/subsystem_vendor', > '0x1af4') > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'cat > /sys/bus/pci/devices/0005\:00\:00.0/subsystem_device', > '0x0001') > # check fid propagation > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'cat > /sys/bus/pci/devices/000a\:00\:00.0/function_id', > '0x0000000c') > # add another device > @@ -134,7 +134,7 @@ def test_s390x_devices(self): > self.vm.command('device_add', driver='virtio-net-ccw', > devno='fe.0.4711', id='net_4711') > self.wait_for_crw_reports() > - exec_command_and_wait_for_pattern(self, 'for i in 1 2 3 4 5 6 7 ; do > ' > + self.exec_command_and_wait_for_pattern('for i in 1 2 3 4 5 6 7 ; do ' > 'if [ -e /sys/bus/ccw/devices/*4711 ]; then break; fi ;' > 'sleep 1 ; done ; ls /sys/bus/ccw/devices/', > '0.0.4711') > @@ -144,17 +144,17 @@ def test_s390x_devices(self): > self.vm.event_wait(name='DEVICE_DELETED', > match={'data': {'device': 'net_4711'}}) > self.wait_for_crw_reports() > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'ls /sys/bus/ccw/devices/0.0.4711', > 'No such file or directory') > # test the virtio-balloon device > - exec_command_and_wait_for_pattern(self, 'head -n 1 /proc/meminfo', > + self.exec_command_and_wait_for_pattern('head -n 1 /proc/meminfo', > 'MemTotal: 115640 kB') > self.vm.command('human-monitor-command', command_line='balloon 96') > - exec_command_and_wait_for_pattern(self, 'head -n 1 /proc/meminfo', > + self.exec_command_and_wait_for_pattern('head -n 1 /proc/meminfo', > 'MemTotal: 82872 kB') > self.vm.command('human-monitor-command', command_line='balloon 128') > - exec_command_and_wait_for_pattern(self, 'head -n 1 /proc/meminfo', > + self.exec_command_and_wait_for_pattern('head -n 1 /proc/meminfo', > 'MemTotal: 115640 kB') > > > @@ -203,23 +203,23 @@ def test_s390x_fedora(self): > > # Some tests to see whether the CLI options have been considered: > self.log.info("Test whether QEMU CLI options have been considered") > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'while ! (dmesg | grep enP7p0s0) ; do sleep 1 ; > done', > 'virtio_net virtio0 enP7p0s0: renamed') > - exec_command_and_wait_for_pattern(self, 'lspci', > + self.exec_command_and_wait_for_pattern('lspci', > '0007:00:00.0 Class 0200: Device 1af4:1000') > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'cat /sys/class/net/enP7p0s0/address', > '02:ca:fe:fa:ce:12') > - exec_command_and_wait_for_pattern(self, 'lscss', '0.1.9876') > - exec_command_and_wait_for_pattern(self, 'lscss', '0.2.5432') > - exec_command_and_wait_for_pattern(self, 'cat /proc/cpuinfo', > + self.exec_command_and_wait_for_pattern('lscss', '0.1.9876') > + self.exec_command_and_wait_for_pattern('lscss', '0.2.5432') > + self.exec_command_and_wait_for_pattern('cat /proc/cpuinfo', > 'processors : 4') > - exec_command_and_wait_for_pattern(self, 'grep MemTotal > /proc/meminfo', > + self.exec_command_and_wait_for_pattern('grep MemTotal /proc/meminfo', > 'MemTotal: 499848 kB') > - exec_command_and_wait_for_pattern(self, 'grep Name /proc/sysinfo', > + self.exec_command_and_wait_for_pattern('grep Name /proc/sysinfo', > 'Extended Name: Some Guest Name') > - exec_command_and_wait_for_pattern(self, 'grep UUID /proc/sysinfo', > + self.exec_command_and_wait_for_pattern('grep UUID /proc/sysinfo', > '30de4fd9-b4d5-409e-86a5-09b387f70bfa') > > # Disable blinking cursor, then write some stuff into the > framebuffer. > @@ -229,16 +229,16 @@ def test_s390x_fedora(self): > # can simply read the written "magic bytes" back from the PPM file to > # check whether the framebuffer is working as expected. > self.log.info("Test screendump of virtio-gpu device") > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'while ! (dmesg | grep gpudrmfb) ; do sleep 1 ; > done', > 'virtio_gpudrmfb frame buffer device') > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'echo -e "\e[?25l" > /dev/tty0', ':/#') > - exec_command_and_wait_for_pattern(self, 'for ((i=0;i<250;i++)); do ' > + self.exec_command_and_wait_for_pattern('for ((i=0;i<250;i++)); do ' > 'echo " The qu ick fo x j ump s o ver a laz y d og" >> > fox.txt;' > 'done', > ':/#') > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'dd if=fox.txt of=/dev/fb0 bs=1000 oflag=sync,nocache ; rm > fox.txt', > '12+0 records out') > with tempfile.NamedTemporaryFile(suffix='.ppm', > @@ -261,12 +261,12 @@ def test_s390x_fedora(self): > id='cbe0') > self.vm.command('device_add', driver='virtio-crypto-ccw', > id='crypdev0', > cryptodev='cbe0', devno='fe.0.2342') > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'while ! (dmesg -c | grep Accelerator.device) ; do' > ' sleep 1 ; done', 'Accelerator device is ready') > - exec_command_and_wait_for_pattern(self, 'lscss', '0.0.2342') > + self.exec_command_and_wait_for_pattern('lscss', '0.0.2342') > self.vm.command('device_del', id='crypdev0') > self.vm.command('object-del', id='cbe0') > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'while ! (dmesg -c | grep Start.virtcrypto_remove) ; > do' > ' sleep 1 ; done', 'Start virtcrypto_remove.') > diff --git a/tests/acceptance/multiprocess.py > b/tests/acceptance/multiprocess.py > index 41d3e51164..b4a6d20770 100644 > --- a/tests/acceptance/multiprocess.py > +++ b/tests/acceptance/multiprocess.py > @@ -10,7 +10,6 @@ > from avocado_qemu import Test > from avocado_qemu import wait_for_console_pattern > from avocado_qemu import ConsoleMixIn > -from avocado_qemu import exec_command_and_wait_for_pattern > > class Multiprocess(Test, ConsoleMixIn): > """ > @@ -60,7 +59,7 @@ def do_test(self, kernel_url, initrd_url, > kernel_command_line, > wait_for_console_pattern(self, 'as init process', > 'Kernel panic - not syncing') > self.exec_command('mount -t sysfs sysfs /sys') > - exec_command_and_wait_for_pattern(self, > + self.exec_command_and_wait_for_pattern( > 'cat > /sys/bus/pci/devices/*/uevent', > 'PCI_ID=1000:0012') > > diff --git a/tests/acceptance/virtio-gpu.py b/tests/acceptance/virtio-gpu.py > index ab18cddbb7..4d65431ef1 100644 > --- a/tests/acceptance/virtio-gpu.py > +++ b/tests/acceptance/virtio-gpu.py > @@ -7,7 +7,7 @@ > from avocado_qemu import Test > from avocado_qemu import BUILD_DIR > from avocado_qemu import wait_for_console_pattern > -from avocado_qemu import exec_command_and_wait_for_pattern > +from avocado_qemu import ConsoleMixIn > from avocado_qemu import is_readable_executable_file > > from qemu.accel import kvm_available > @@ -31,7 +31,7 @@ def pick_default_vug_bin(): > return bld_dir_path > > > -class VirtioGPUx86(Test): > +class VirtioGPUx86(Test, ConsoleMixIn): And here! > """ > :avocado: tags=virtio-gpu > """ > @@ -92,9 +92,7 @@ def test_virtio_vga_virgl(self): > self.cancel("VirGL not enabled?") > > self.wait_for_console_pattern("as init process") > - exec_command_and_wait_for_pattern( > - self, "/usr/sbin/modprobe virtio_gpu", "" > - ) > + self.exec_command_and_wait_for_pattern("/usr/sbin/modprobe > virtio_gpu", "") > self.wait_for_console_pattern("features: +virgl +edid") > > def test_vhost_user_vga_virgl(self): > @@ -157,9 +155,7 @@ def test_vhost_user_vga_virgl(self): > ) > self.vm.launch() > self.wait_for_console_pattern("as init process") > - exec_command_and_wait_for_pattern( > - self, "/usr/sbin/modprobe virtio_gpu", "" > - ) > + self.exec_command_and_wait_for_pattern("/usr/sbin/modprobe > virtio_gpu", "") > self.wait_for_console_pattern("features: +virgl -edid") > self.vm.shutdown() > qemu_sock.close() > -- > 2.29.2 >