Similar to the BootLinuxConsoleX86_64 test:
boot a Linux kernel on a Malta board and verify the serial is working.
This test can be run using:
$ avocado run -t endian:big tests/acceptance
Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
---
tests/acceptance/boot_linux_console.py | 38 ++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/tests/acceptance/boot_linux_console.py
b/tests/acceptance/boot_linux_console.py
index 17dc8d58c1..72cf5e943c 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -46,3 +46,41 @@ class BootLinuxConsoleX86_64(Test):
break
if 'Kernel panic - not syncing' in msg:
self.fail("Kernel panic reached")
+
+
+class BootLinuxConsoleMips(Test):
+ """
+ Boots a mips Linux kernel and checks that the console is operational
+ and the kernel command line is properly passed from QEMU to the kernel
+
+ :avocado: enable
+ :avocado: tags=endian:big
+ :avocado: tags=arch:mips
+ :avocado: tags=board:malta
+ """
+
+ arch = "mips"
+ timeout = 60
+
+ def test(self):
+ kernel_url = ('http://people.debian.org/~aurel32/qemu/mips/'
+ 'vmlinux-3.2.0-4-4kc-malta')
+ kernel_hash = '592e384a4edc16dade52a6cd5c785c637bcbc9ad'
+ kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
+
+ self.vm.set_machine('malta')
+ self.vm.set_console()
+ kernel_command_line = 'console=ttyS0 printk.time=0'
+ self.vm.add_args('-m', "64",
+ '-kernel', kernel_path,
+ '-append', kernel_command_line)
+ self.vm.launch()
+ console = self.vm.console_socket.makefile()
+ console_logger = logging.getLogger('console')
+ while True:
+ msg = console.readline()
+ console_logger.debug(msg.strip())
+ if 'Kernel command line: %s' % kernel_command_line in msg:
+ break
+ if 'Kernel panic - not syncing' in msg:
+ self.fail("Kernel panic reached")
--
2.18.0.rc2