From: Philippe Mathieu-Daudé <f4bug@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é <f4bug@amsat.org>
Acked-by: Aleksandar Markovic <amarkovic@wavecomp.com>
Tested-by: Cleber Rosa <crosa@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
On Fri, Jun 07, 2019 at 01:02:32AM +0200, Philippe Mathieu-Daudé wrote:
> From: Philippe Mathieu-Daudé <f4bug@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é <f4bug@amsat.org>
> Acked-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> Tested-by: Cleber Rosa <crosa@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 <crosa@redhat.com>
On Jun 7, 2019 1:06 AM, "Philippe Mathieu-Daudé" <philmd@redhat.com> wrote:
>
> From: Philippe Mathieu-Daudé <f4bug@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é <f4bug@amsat.org>
> Acked-by: Aleksandar Markovic <amarkovic@wavecomp.com>
> Tested-by: Cleber Rosa <crosa@redhat.com>
> ---
Excellent test, and commit message content too. May I suggest the test
group inclusion of the text of this commit message (or similar text) to the
documentation on QEMU Testing web page, as an example of the acceptance
test usage?
Yours, Aleksandar
> 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
>
>
© 2016 - 2026 Red Hat, Inc.