[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v3 6/6] tests/acceptance: Add test_sh4_r2d i
From: |
Cleber Rosa |
Subject: |
Re: [Qemu-devel] [RFC PATCH v3 6/6] tests/acceptance: Add test_sh4_r2d in BootLinuxTracing |
Date: |
Fri, 19 Oct 2018 20:02:55 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 |
On 10/13/18 11:15 AM, Philippe Mathieu-Daudé wrote:
> Similar to the test_x86_64_pc test, this boots a Linux kernel on a
> R2D board (SH4 little-endian) and verify the usb is working by looking
> at the usb trace events. Thus this test requires the QEMU binary to be
> compiled with:
>
> $ configure ... --enable-trace-backends=log
>
> This test also requires the dpkg-deb tool (apt/dnf install dpkg) to
> extract the kernel from the Debian package.
>
> $ avocado --show=app,trace run -p arch=sh4
> tests/acceptance/boot_linux_console.py
> JOB ID : dc45be27f5d1edb8289a1ede139e107bbc55b045
> JOB LOG :
> /home/phil/avocado/job-results/job-2018-10-13T14.46-dc45be2/job.log
> (1/5)
> tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_x86_64_pc:
> CANCEL: Currently specific to the x86_64 target arch (0.00 s)
> (2/5)
> tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_mips_4kc_malta:
> CANCEL: Currently specific to the sh4 target arch (0.00 s)
> (3/5)
> tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_mipsel_5kc_malta:
> CANCEL: Currently specific to the sh4 target arch (0.00 s)
> (4/5)
> tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_sh4_r2d: SKIP:
> console not working on r2d machine
> (5/5)
> tests/acceptance/boot_linux_console.py:BootLinuxTracing.test_sh4_r2d: /
> trace: address@hidden:usb_ohci_init_time usb_bit_time=1000000
> usb_frame_time=83
> trace: address@hidden:usb_ohci_port_attach port #0
> trace: address@hidden:usb_ohci_reset sysbus-ohci
> trace: address@hidden:usb_ohci_stop sysbus-ohci: USB Suspended
> trace: address@hidden:usb_ohci_stop sysbus-ohci: USB Suspended
> trace: address@hidden:usb_ohci_port_detach port #0
> trace: address@hidden:usb_ohci_port_attach port #0
> trace: address@hidden:usb_ohci_reset sysbus-ohci
> trace: address@hidden:usb_ohci_stop sysbus-ohci: USB Suspended
> trace: address@hidden:usb_ohci_set_ctl sysbus-ohci: new state 0x80
> trace: address@hidden:usb_ohci_start sysbus-ohci: USB Operational
> trace: address@hidden:usb_ohci_hub_power_up powered up all ports
> PASS (2.43 s)
> RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 |
> CANCEL 3
> JOB TIME : 2.67 s
>
And with similar changes, on this point of this series:
$ avocado run tests/acceptance/boot_linux_console.py
JOB ID : 857fef1b8c0ce59a79d452f27e996ed2743404b1
JOB LOG :
/home/cleber/avocado/job-results/job-2018-10-19T19.58-857fef1/job.log
(1/5)
tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_x86_64_pc:
PASS (2.04 s)
(2/5)
tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_mips_4kc_malta:
PASS (0.57 s)
(3/5)
tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_mipsel_5kc_malta:
PASS (0.59 s)
(4/5)
tests/acceptance/boot_linux_console.py:BootLinuxConsole.test_sh4_r2d:
SKIP: console not working on r2d machine
(5/5)
tests/acceptance/boot_linux_console.py:BootLinuxTracing.test_sh4_r2d:
PASS (1.01 s)
RESULTS : PASS 4 | ERROR 0 | FAIL 0 | SKIP 1 | WARN 0 | INTERRUPT 0 |
CANCEL 0
JOB TIME : 4.57 s
- Cleber.
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> tests/acceptance/boot_linux_console.py | 64 ++++++++++++++++++++++++++
> 1 file changed, 64 insertions(+)
>
> diff --git a/tests/acceptance/boot_linux_console.py
> b/tests/acceptance/boot_linux_console.py
> index 8f99cc0d7c..e11993bf98 100644
> --- a/tests/acceptance/boot_linux_console.py
> +++ b/tests/acceptance/boot_linux_console.py
> @@ -8,11 +8,22 @@
> # This work is licensed under the terms of the GNU GPL, version 2 or
> # later. See the COPYING file in the top-level directory.
>
> +import os
> import logging
> import subprocess
>
> from avocado import skip
> from avocado_qemu import Test
> +from avocado.utils.wait import wait_for
> +
> +
> +def read_stream_for_string(stream, expected_string, logger=None):
> + msg = stream.readline()
> + if len(msg) == 0:
> + return False
> + if logger:
> + logger.debug(msg.strip())
> + return expected_string in msg
>
>
> class BootLinuxConsole(Test):
> @@ -185,3 +196,56 @@ class BootLinuxConsole(Test):
> break
> if 'Kernel panic - not syncing' in msg:
> self.fail("Kernel panic reached")
> +
> +class BootLinuxTracing(Test):
> + """
> + Boots a Linux kernel and checks that via the Tracing framework that
> + a specific trace events occured, demostrating the kernel is operational.
> +
> + :avocado: enable
> + """
> +
> + timeout = 60
> +
> + def test_sh4_r2d(self):
> + """
> + This test requires the dpkg-deb tool (apt/dnf install dpkg) to
> extract
> + the kernel from the Debian package.
> + This test also requires the QEMU binary to be compiled with:
> +
> + $ configure ... --enable-trace-backends=log
> +
> + The kernel can be rebuilt using this Debian kernel source [1] and
> + following the instructions on [2].
> +
> + [1]
> https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-official
> + [2]
> http://snapshot.debian.org/package/linux-2.6/2.6.32-30/#linux-source-2.6.32_2.6.32-30
> +
> + :avocado: tags=arch:sh4
> + """
> + if self.arch != 'sh4':
> + self.cancel('Currently specific to the %s target arch' %
> self.arch)
> +
> + deb_url = ('http://snapshot.debian.org/archive/'
> + 'debian-ports/20110116T065852Z/pool-sh4/main/l/'
> +
> 'linux-2.6/linux-image-2.6.32-5-sh7751r_2.6.32-30_sh4.deb')
> + deb_hash = '8025e503319dc8ad786756e3afaa8eb868e9ef59'
> + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash)
> + subprocess.check_call(['dpkg-deb', '--extract', deb_path,
> self.workdir])
> + kernel_path = self.workdir + '/boot/vmlinuz-2.6.32-5-sh7751r'
> + trace_path = os.path.join(self.workdir, 'trace.log')
> + trace_logger = logging.getLogger('trace')
> +
> + self.vm.set_arch(self.arch)
> + self.vm.set_machine('r2d')
> + kernel_command_line = 'noiotrap'
> + self.vm.add_args('-trace', "enable=usb_ohci_*,file=" + trace_path,
> + '-kernel', kernel_path,
> + '-append', kernel_command_line)
> +
> + self.vm.launch()
> + if not wait_for(read_stream_for_string, timeout=15, step=0,
> + args=(open(trace_path),
> + 'usb_ohci_hub_power_up powered up all ports',
> + trace_logger)):
> + self.fail("Machine failed to boot")
>
--
Cleber Rosa
[ Sr Software Engineer - Virtualization Team - Red Hat ]
[ Avocado Test Framework - avocado-framework.github.io ]
[ 7ABB 96EB 8B46 B94D 5E0F E9BB 657E 8D33 A5F2 09F3 ]
- Re: [Qemu-devel] [PATCH v3 1/6] tests/acceptance: Rename the generic BootLinuxConsole test as test_x86_64_pc, (continued)
[Qemu-devel] [PATCH v3 5/6] tests/acceptance: Add test_sh4_r2d in BootLinuxConsole, Philippe Mathieu-Daudé, 2018/10/13
[Qemu-devel] [RFC PATCH v3 6/6] tests/acceptance: Add test_sh4_r2d in BootLinuxTracing, Philippe Mathieu-Daudé, 2018/10/13
- Re: [Qemu-devel] [RFC PATCH v3 6/6] tests/acceptance: Add test_sh4_r2d in BootLinuxTracing,
Cleber Rosa <=
Re: [Qemu-devel] [PATCH v3 0/6] Avocado: more multi-arch tests, Thomas Huth, 2018/10/15
Re: [Qemu-devel] [PATCH v3 0/6] Avocado: more multi-arch tests, Philippe Mathieu-Daudé, 2018/10/19