On May 21, 2019 1:19 AM, "Philippe Mathieu-Daudé" <f4...@amsat.org> wrote: > > This tests boots a Linux kernel on a Malta machine up to a > busybox shell on the serial console. Few commands are executed > before halting the machine (via reboot). > > We use the initrd cpio image from the kerneltests project: > https://kerneltests.org/ > > If MIPS is a target being built, "make check-acceptance" will > automatically include this test by the use of the "arch:mips" tags. > > Alternatively, this test can be run using: > > $ avocado --show=console run -t arch:mips tests/acceptance/boot_linux_console.py > [...] > console: Boot successful. > [...] > console: / # uname -a > console: Linux buildroot 4.5.0-2-4kc-malta #1 Debian 4.5.5-1 (2016-05-29) mips GNU/Linux > console: / # reboot > console: / # reboot: Restarting system > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > ---
Acked-by: Aleksandar Markovic <amarko...@wavecomp.com> > tests/acceptance/boot_linux_console.py | 49 ++++++++++++++++++++++++++ > 1 file changed, 49 insertions(+) > > diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py > index 1c330871c0..60ea240ab6 100644 > --- a/tests/acceptance/boot_linux_console.py > +++ b/tests/acceptance/boot_linux_console.py > @@ -11,6 +11,7 @@ > import os > import logging > import lzma > +import gzip > import shutil > > from avocado_qemu import Test > @@ -47,6 +48,11 @@ class BootLinuxConsole(Test): > fail = 'Failure message found in console: %s' % failure_message > self.fail(fail) > > + def exec_command_and_wait_for_pattern(self, command, success_message): > + command += '\n' > + self.vm.console_socket.sendall(command.encode()) > + self.wait_for_console_pattern(success_message) > + > def extract_from_deb(self, deb, path): > """ > Extracts a file from a deb package into the test workdir > @@ -138,6 +144,49 @@ class BootLinuxConsole(Test): > console_pattern = 'Kernel command line: %s' % kernel_command_line > self.wait_for_console_pattern(console_pattern) > > + def test_mips_malta_cpio(self): > + """ > + :avocado: tags=arch:mips > + :avocado: tags=machine:malta > + :avocado: tags=endian:big > + """ > + deb_url = ('http://snapshot.debian.org/archive/debian/' > + '20160601T041800Z/pool/main/l/linux/' > + 'linux-image-4.5.0-2-4kc-malta_4.5.5-1_mips.deb') > + deb_hash = 'a3c84f3e88b54e06107d65a410d1d1e8e0f340f8' > + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) > + kernel_path = self.extract_from_deb(deb_path, > + '/boot/vmlinux-4.5.0-2-4kc-malta') > + initrd_url = ('https://github.com/groeck/linux-build-test/raw/' > + '8584a59ed9e5eb5ee7ca91f6d74bbb06619205b8/rootfs/' > + 'mips/rootfs.cpio.gz') > + initrd_hash = 'bf806e17009360a866bf537f6de66590de349a99' > + initrd_path_gz = self.fetch_asset(initrd_url, asset_hash=initrd_hash) > + initrd_path = self.workdir + "rootfs.cpio" > + > + with gzip.open(initrd_path_gz, 'rb') as f_in: > + with open(initrd_path, 'wb') as f_out: > + shutil.copyfileobj(f_in, f_out) > + > + self.vm.set_machine('malta') > + self.vm.set_console() > + kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE > + + 'console=ttyS0 console=tty ' > + + 'rdinit=/sbin/init noreboot') > + self.vm.add_args('-kernel', kernel_path, > + '-initrd', initrd_path, > + '-append', kernel_command_line, > + '-no-reboot') > + self.vm.launch() > + self.wait_for_console_pattern('Boot successful.') > + > + 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') > + > def do_test_mips_malta32el_nanomips(self, kernel_url, kernel_hash): > kernel_path_xz = self.fetch_asset(kernel_url, asset_hash=kernel_hash) > kernel_path = self.workdir + "kernel" > -- > 2.19.1 >