On Fri, Jun 07, 2019 at 01:02:32AM +0200, Philippe Mathieu-Daudé wrote: > From: Philippe Mathieu-Daudé <f4...@amsat.org> > > 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> > Tested-by: Cleber Rosa <cr...@redhat.com> > --- > v3: Use archive.extract() instead of shutil+gzip (Cleber) > --- > tests/acceptance/boot_linux_console.py | 44 ++++++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff --git a/tests/acceptance/boot_linux_console.py > b/tests/acceptance/boot_linux_console.py > index a7a735c90d..751e3bff86 100644 > --- a/tests/acceptance/boot_linux_console.py > +++ b/tests/acceptance/boot_linux_console.py > @@ -49,6 +49,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 > @@ -140,6 +145,45 @@ 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 = archive.extract(initrd_path_gz, > + os.path.join(self.workdir, > 'rootfs.cpio')) > + 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.20.1 >
Reviewed-by: Cleber Rosa <cr...@redhat.com>