On Mon, Sep 28, 2020 at 2:31 PM Philippe Mathieu-Daudé <f4...@amsat.org> wrote: > > Add a test for the mipssim machine, based on the recommended > test setup from Thomas Huth: > https://www.mail-archive.com/qemu-devel@nongnu.org/msg606846.html > > The test is quick and can be run as: > > $ avocado --show=console run -t machine:mipssim tests/acceptance/ > (1/1) > tests/acceptance/machine_mips_mipssim.py:MipsSimMachine.test_mipssim_linux_console: > console: Linux version 3.6.11 (root@711bb8ba16a7) (gcc version 4.8.3 > (Buildroot 2014.11) ) #2 Sun Sep 27 13:39:35 UTC 2020 > console: Setting default memory size 0x02000000 > console: bootconsole [early0] enabled > console: CPU revision is: 00019300 (MIPS 24Kc) > console: FPU revision is: 00739300 > ... > console: CPU frequency 12.00 MHz > console: Calibrating delay loop... 950.27 BogoMIPS (lpj=4751360) > ... > console: MIPSNet Ethernet driver. Version: 2007-11-17. (c)2005 MIPS > Technologies, Inc. > ... > console: Welcome to Buildroot > console: buildroot login: root > console: # root > console: -sh: root: not found > console: # ping -c 3 10.0.2.2 > console: PING 10.0.2.2 (10.0.2.2): 56 data bytes > console: 64 bytes from 10.0.2.2: seq=0 ttl=255 time=48.231 ms > console: 64 bytes from 10.0.2.2: seq=1 ttl=255 time=9.407 ms > console: 64 bytes from 10.0.2.2: seq=2 ttl=255 time=2.298 ms > console: --- 10.0.2.2 ping statistics --- > console: 3 packets transmitted, 3 packets received, 0% packet loss > PASS (7.99 s) > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > Cc: Thomas Huth <h...@tuxfamily.org> > --- > MAINTAINERS | 1 + > tests/acceptance/machine_mips_mipssim.py | 56 ++++++++++++++++++++++++ > 2 files changed, 57 insertions(+) > create mode 100644 tests/acceptance/machine_mips_mipssim.py > > diff --git a/MAINTAINERS b/MAINTAINERS > index 5eed1e692b4..17d8a012b0e 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -240,6 +240,7 @@ F: include/hw/misc/mips_* > F: include/hw/timer/mips_gictimer.h > F: tests/acceptance/linux_ssh_mips_malta.py > F: tests/acceptance/machine_mips_malta.py > +F: tests/acceptance/machine_mips_mipssim.py > F: tests/tcg/mips/ > K: ^Subject:.*(?i)mips > > diff --git a/tests/acceptance/machine_mips_mipssim.py > b/tests/acceptance/machine_mips_mipssim.py > new file mode 100644 > index 00000000000..b2749917b08 > --- /dev/null > +++ b/tests/acceptance/machine_mips_mipssim.py > @@ -0,0 +1,56 @@ > +# Functional tests for the MIPS simulator (MIPSsim machine) > +# > +# Copyright (c) 2020 Philippe Mathieu-Daudé <f4...@amsat.org> > +# > +# This work is licensed under the terms of the GNU GPL, version 2 or later. > +# See the COPYING file in the top-level directory. > +# > +# SPDX-License-Identifier: GPL-2.0-or-later > + > +import os > +import logging > +import time > + > +from avocado import skipUnless > +from avocado_qemu import Test > +from avocado_qemu import exec_command_and_wait_for_pattern > +from avocado_qemu import interrupt_interactive_console_until_pattern > +from avocado_qemu import wait_for_console_pattern > + > +class MipsSimMachine(Test): > + > + timeout = 30 > + KERNEL_COMMON_COMMAND_LINE = 'printk.time=0 ' > + > + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') > + def test_mipssim_linux_console(self): > + """ > + Boots the Linux kernel and checks that the console is operational > + :avocado: tags=arch:mipsel > + :avocado: tags=machine:mipssim > + :avocado: tags=device:mipsnet > + """ > + kernel_url = ('https://github.com/philmd/qemu-testing-blob/raw/' > + '32ea5764e1de8fffa0d59366c44822cd06d7c8e0/' > + 'mips/mipssim/mipsel/vmlinux')
So, are you willing to maintain some images on your GitHub to avoid the image changes when they are not found? > + kernel_hash = '0f9aeca3a2e25b5b0cc4999571f39a7ad58cdc43' > + kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash) > + > + initrd_url = ('https://github.com/philmd/qemu-testing-blob/raw/' > + '32ea5764e1de8fffa0d59366c44822cd06d7c8e0/' > + 'mips/mipssim/mipsel/rootfs.cpio') > + initrd_hash = 'b20359bdfae66387e5a17d6692686d59c189417b' > + initrd_path = self.fetch_asset(initrd_url, asset_hash=initrd_hash) > + > + self.vm.set_console() > + self.vm.add_args('-kernel', kernel_path, > + '-initrd', initrd_path, > + '-append', self.KERNEL_COMMON_COMMAND_LINE) > + self.vm.launch() > + > + wait_for_console_pattern(self, 'Welcome to Buildroot') > + interrupt_interactive_console_until_pattern(self, > + > interrupt_string='root\r', > + success_message='#') > + pattern = '3 packets transmitted, 3 packets received, 0% packet loss' > + exec_command_and_wait_for_pattern(self, 'ping -c 3 10.0.2.2', > pattern) > -- > 2.26.2 > > IMHO, although the solution of spreading images over personal repositories is not the best, I don't have a strong opinion to block this, so Reviewed-by: Willian Rampazzo (willi...@redhat.com)