[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 7/7] avocado: Add tests booting the Malta machin
From: |
Philippe Mathieu-Daudé |
Subject: |
[Qemu-devel] [RFC PATCH 7/7] avocado: Add tests booting the Malta machine |
Date: |
Thu, 19 Apr 2018 13:46:42 -0300 |
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
tests/avocado/test_linux-boot-console.py | 92 +++++++++++++++++++
.../parameters.yaml | 2 +
2 files changed, 94 insertions(+)
diff --git a/tests/avocado/test_linux-boot-console.py
b/tests/avocado/test_linux-boot-console.py
index f54d10dd79..4ae1e3bf37 100644
--- a/tests/avocado/test_linux-boot-console.py
+++ b/tests/avocado/test_linux-boot-console.py
@@ -86,3 +86,95 @@ class TestAlphaClipperBoot2_6(test.QemuTest):
def tearDown(self):
os.remove(self.console_path)
+
+
+class TestMips4kcMaltaBoot2_6(test.QemuTest):
+ """
+ :avocado: enable
+ :avocado: tags=arch_mips
+ """
+ ARCH = "mips"
+
+ def kernel_url(self):
+ return
'http://people.debian.org/~aurel32/qemu/mips/vmlinux-2.6.32-5-4kc-malta'
+
+ def setUp(self):
+ self.console_path = tempfile.mkstemp()[1]
+ kernel_path = cachedfile(self.kernel_url())
+ self.vm._args.extend(['-machine', 'malta'])
+ self.vm._args.extend(['-m', '64'])
+ self.vm._args.extend(['-kernel', kernel_path])
+ self.vm._args.extend(['-append', '"console=ttyS0 printk.time=0"'])
+ self.vm._args.extend(['-chardev',
'socket,id=uart0,server,nowait,path=' + self.console_path])
+ self.vm._args.extend(['-serial', 'chardev:uart0'])
+ self.vm._args.extend(['-nographic'])
+
+ def test_boot_console(self):
+ """
+ :avocado: tags=uart,printk
+ """
+ if self.params.get('arch') != self.ARCH:
+ return
+
+ self.vm.launch(self.console_path)
+ console = self.vm.get_console(console_address=self.console_path,
login=False)
+ # no filesystem provided on purpose, wait for the Kernel panic
+ bootlog = console.read_until_any_line_matches(["Kernel panic - not
syncing: VFS: Unable to mount root fs"], timeout=6.0)[1]
+ console.close()
+ # check Super I/O
+ self.assertIn(u'ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A', bootlog)
+ self.assertIn(u'ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A', bootlog)
+ self.assertIn(u'i8042 KBD port at 0x60,0x64 irq 1', bootlog)
+ self.assertIn(u'i8042 AUX port at 0x60,0x64 irq 12', bootlog)
+ # check PCI (network interface)
+ self.assertIn(u'registered as PCnet/PCI II 79C970A', bootlog)
+ self.vm.shutdown()
+
+ def tearDown(self):
+ os.remove(self.console_path)
+
+# FIXME this is a copy of TestMips4kcMaltaBoot2_6 with a different the kernel
url
+class TestMips4kcMaltaBoot3_2(test.QemuTest):
+ """
+ :avocado: enable
+ :avocado: tags=arch_mips
+ """
+ ARCH = "mips"
+
+ def kernel_url(self):
+ return
'http://people.debian.org/~aurel32/qemu/mips/vmlinux-3.2.0-4-4kc-malta'
+
+ def setUp(self):
+ self.console_path = tempfile.mkstemp()[1]
+ kernel_path = cachedfile(self.kernel_url())
+ self.vm._args.extend(['-machine', 'malta'])
+ self.vm._args.extend(['-m', '64'])
+ self.vm._args.extend(['-kernel', kernel_path])
+ self.vm._args.extend(['-append', '"console=ttyS0 printk.time=0"'])
+ self.vm._args.extend(['-chardev',
'socket,id=uart0,server,nowait,path=' + self.console_path])
+ self.vm._args.extend(['-serial', 'chardev:uart0'])
+ self.vm._args.extend(['-nographic'])
+
+ def test_boot_console(self):
+ """
+ :avocado: tags=uart,printk
+ """
+ if self.params.get('arch') != self.ARCH:
+ return
+
+ self.vm.launch(self.console_path)
+ console = self.vm.get_console(console_address=self.console_path,
login=False)
+ # no filesystem provided on purpose, wait for the Kernel panic
+ bootlog = console.read_until_any_line_matches(["Kernel panic - not
syncing: VFS: Unable to mount root fs"], timeout=6.0)[1]
+ console.close()
+ # check Super I/O
+ self.assertIn(u'ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A', bootlog)
+ self.assertIn(u'ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A', bootlog)
+ self.assertIn(u'i8042 KBD port at 0x60,0x64 irq 1', bootlog)
+ self.assertIn(u'i8042 AUX port at 0x60,0x64 irq 12', bootlog)
+ # check PCI (network interface)
+ self.assertIn(u'registered as PCnet/PCI II 79C970A', bootlog)
+ self.vm.shutdown()
+
+ def tearDown(self):
+ os.remove(self.console_path)
diff --git a/tests/avocado/test_linux-boot-console.py.data/parameters.yaml
b/tests/avocado/test_linux-boot-console.py.data/parameters.yaml
index ed8c08058c..156f271a73 100644
--- a/tests/avocado/test_linux-boot-console.py.data/parameters.yaml
+++ b/tests/avocado/test_linux-boot-console.py.data/parameters.yaml
@@ -1,3 +1,5 @@
architecture: !mux
alpha:
arch: alpha
+ mips:
+ arch: mips
--
2.17.0
- [Qemu-devel] [RFC PATCH 0/7] avocado: Add acceptance tests parsing the Linux boot console, Philippe Mathieu-Daudé, 2018/04/19
- [Qemu-devel] [RFC PATCH 3/7] qemu.py: Check console arch is supported before calling mktemp(), Philippe Mathieu-Daudé, 2018/04/19
- [Qemu-devel] [RFC PATCH 2/7] avocado: Update python scripts to upstream codebase, Philippe Mathieu-Daudé, 2018/04/19
- [Qemu-devel] [RFC PATCH 1/7] AVOCADO_QEMU: Snapshot commit, Philippe Mathieu-Daudé, 2018/04/19
- [Qemu-devel] [RFC PATCH 4/7] qemu.py: Avoid deprecated tempfile.mktemp(), Philippe Mathieu-Daudé, 2018/04/19
- [Qemu-devel] [RFC PATCH 5/7] avocado: Add an optional flag 'login' to get_console(), Philippe Mathieu-Daudé, 2018/04/19
- [Qemu-devel] [RFC PATCH 6/7] avocado: Add a test parsing Linux kernel booting console, Philippe Mathieu-Daudé, 2018/04/19
- [Qemu-devel] [RFC PATCH 7/7] avocado: Add tests booting the Malta machine,
Philippe Mathieu-Daudé <=
- Re: [Qemu-devel] [RFC PATCH 0/7] avocado: Add acceptance tests parsing the Linux boot console, no-reply, 2018/04/19
- Re: [Qemu-devel] [RFC PATCH 0/7] avocado: Add acceptance tests parsing the Linux boot console, Philippe Mathieu-Daudé, 2018/04/20
- Re: [Qemu-devel] [RFC PATCH 0/7] avocado: Add acceptance tests parsing the Linux boot console, Cleber Rosa, 2018/04/30