diff mbox series

[10/26] tests/acceptance: Add test that boots the HelenOS microkernel on Leon3

Message ID 20191028073441.6448-11-philmd@redhat.com (mailing list archive)
State New, archived
Headers show
Series tests/acceptance: Queue for 4.2 | expand

Commit Message

Philippe Mathieu-Daudé Oct. 28, 2019, 7:34 a.m. UTC
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

Release notes:
http://www.helenos.org/wiki/Download#HelenOS0.6.0

Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 MAINTAINERS                             |  1 +
 tests/acceptance/machine_sparc_leon3.py | 37 +++++++++++++++++++++++++
 2 files changed, 38 insertions(+)
 create mode 100644 tests/acceptance/machine_sparc_leon3.py

Comments

Cleber Rosa Oct. 28, 2019, 4:38 p.m. UTC | #1
On Mon, Oct 28, 2019 at 08:34:25AM +0100, Philippe Mathieu-Daudé wrote:
> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
> 
> Release notes:
> http://www.helenos.org/wiki/Download#HelenOS0.6.0
> 
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
>  MAINTAINERS                             |  1 +
>  tests/acceptance/machine_sparc_leon3.py | 37 +++++++++++++++++++++++++
>  2 files changed, 38 insertions(+)
>  create mode 100644 tests/acceptance/machine_sparc_leon3.py
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 556ce0bfe3..17ff741c63 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1173,6 +1173,7 @@ S: Maintained
>  F: hw/sparc/leon3.c
>  F: hw/*/grlib*
>  F: include/hw/*/grlib*
> +F: tests/acceptance/machine_sparc_leon3.py
>  
>  S390 Machines
>  -------------
> diff --git a/tests/acceptance/machine_sparc_leon3.py b/tests/acceptance/machine_sparc_leon3.py
> new file mode 100644
> index 0000000000..a1394ba8ad
> --- /dev/null
> +++ b/tests/acceptance/machine_sparc_leon3.py
> @@ -0,0 +1,37 @@
> +# Functional test that boots a Leon3 machine and checks its serial console.
> +#
> +# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2 or
> +# later. See the COPYING file in the top-level directory.
> +
> +import os
> +import logging
> +

Those imports are not needed.

> +from avocado import skipIf
> +from avocado_qemu import MachineTest
> +
> +
> +class Leon3Machine(MachineTest):

I have some diverging opinions on the test class rename (which I'll
address as responses to the respective patches), so I've tested this
using the original name and implementation (from avocado_qemu import
Test).

> +
> +    timeout = 60
> +
> +    def test_leon3_helenos_uimage(self):
> +        """
> +        :avocado: tags=arch:sparc
> +        :avocado: tags=machine:leon3
> +        :avocado: tags=binfmt:uimage
> +        """
> +        kernel_url = ('http://www.helenos.org/releases/'
> +                      'HelenOS-0.6.0-sparc32-leon3.bin')
> +        kernel_hash = 'a88c9cfdb8430c66650e5290a08765f9bf049a30'
> +        kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
> +
> +        self.vm.set_machine('leon3_generic')
> +        self.vm.set_console()
> +        self.vm.add_args('-kernel', kernel_path)
> +
> +        self.vm.launch()
> +
> +        wait_for_console_pattern(self,'Copyright (c) 2001-2014 HelenOS project')
> +        wait_for_console_pattern(self,'Booting the kernel ...')

But this needs an import:

from avocado_qemu import wait_for_console_pattern

> -- 
> 2.21.0
> 

The core of the test is good, and I've tested it with the changes
listed above, and it runs reliably.

Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>

Queuing on my python-next branch (and sending shortly in a PR).

Thanks,
- Cleber.
diff mbox series

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 556ce0bfe3..17ff741c63 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1173,6 +1173,7 @@  S: Maintained
 F: hw/sparc/leon3.c
 F: hw/*/grlib*
 F: include/hw/*/grlib*
+F: tests/acceptance/machine_sparc_leon3.py
 
 S390 Machines
 -------------
diff --git a/tests/acceptance/machine_sparc_leon3.py b/tests/acceptance/machine_sparc_leon3.py
new file mode 100644
index 0000000000..a1394ba8ad
--- /dev/null
+++ b/tests/acceptance/machine_sparc_leon3.py
@@ -0,0 +1,37 @@ 
+# Functional test that boots a Leon3 machine and checks its serial console.
+#
+# Copyright (c) Philippe Mathieu-Daudé <f4bug@amsat.org>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or
+# later. See the COPYING file in the top-level directory.
+
+import os
+import logging
+
+from avocado import skipIf
+from avocado_qemu import MachineTest
+
+
+class Leon3Machine(MachineTest):
+
+    timeout = 60
+
+    def test_leon3_helenos_uimage(self):
+        """
+        :avocado: tags=arch:sparc
+        :avocado: tags=machine:leon3
+        :avocado: tags=binfmt:uimage
+        """
+        kernel_url = ('http://www.helenos.org/releases/'
+                      'HelenOS-0.6.0-sparc32-leon3.bin')
+        kernel_hash = 'a88c9cfdb8430c66650e5290a08765f9bf049a30'
+        kernel_path = self.fetch_asset(kernel_url, asset_hash=kernel_hash)
+
+        self.vm.set_machine('leon3_generic')
+        self.vm.set_console()
+        self.vm.add_args('-kernel', kernel_path)
+
+        self.vm.launch()
+
+        wait_for_console_pattern(self,'Copyright (c) 2001-2014 HelenOS project')
+        wait_for_console_pattern(self,'Booting the kernel ...')