diff mbox series

[v3,5/5] tests/functional: Boot OpenBSD on mac99

Message ID 20261001230058.11465-6-kirill@korins.ky
State New
Headers show
Series mac99: Boot OpenBSD/macppc | expand

Commit Message

Kirill A. Korinsky Oct. 1, 2026, 10:59 p.m. UTC
From: "Kirill A. Korinsky" <kirill@korins.ky>

OpenBSD device discovery exercises CTPR masking, zero decrementer
writes, and CUDA reply timing and layout; regressions in any of these
paths stall the guest before the installer starts.

Signed-off-by: Kirill A. Korinsky <kirill@korins.ky>
Tested-by: Anushree Mathur <anushree.mathur@linux.ibm.com>
Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
 tests/functional/ppc/meson.build     |  2 ++
 tests/functional/ppc/test_openbsd.py | 46 ++++++++++++++++++++++++++++
 2 files changed, 48 insertions(+)
 create mode 100755 tests/functional/ppc/test_openbsd.py

Comments

Mark Cave-Ayland Oct. 12, 2026, 8:55 p.m. UTC | #1
On 01/10/2026 23:59, Kirill A. Korinsky wrote:

> From: "Kirill A. Korinsky" <kirill@korins.ky>
> 
> OpenBSD device discovery exercises CTPR masking, zero decrementer
> writes, and CUDA reply timing and layout; regressions in any of these
> paths stall the guest before the installer starts.
> 
> Signed-off-by: Kirill A. Korinsky <kirill@korins.ky>
> Tested-by: Anushree Mathur <anushree.mathur@linux.ibm.com>
> Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> ---
>   tests/functional/ppc/meson.build     |  2 ++
>   tests/functional/ppc/test_openbsd.py | 46 ++++++++++++++++++++++++++++
>   2 files changed, 48 insertions(+)
>   create mode 100755 tests/functional/ppc/test_openbsd.py
> 
> diff --git a/tests/functional/ppc/meson.build b/tests/functional/ppc/meson.build
> index ae061fe5a6..1055cdaa17 100644
> --- a/tests/functional/ppc/meson.build
> +++ b/tests/functional/ppc/meson.build
> @@ -2,6 +2,7 @@
>   
>   test_ppc_timeouts = {
>     '40p' : 240,
> +  'openbsd' : 240,
>   }
>   
>   tests_ppc_system_quick = [
> @@ -15,6 +16,7 @@ tests_ppc_system_thorough = [
>     'bamboo',
>     'mac',
>     'mpc8544ds',
> +  'openbsd',
>     'ppe42',
>     'replay',
>     'sam460ex',
> diff --git a/tests/functional/ppc/test_openbsd.py b/tests/functional/ppc/test_openbsd.py
> new file mode 100755
> index 0000000000..73fa328b1f
> --- /dev/null
> +++ b/tests/functional/ppc/test_openbsd.py
> @@ -0,0 +1,46 @@
> +#!/usr/bin/env python3
> +#
> +# Test that OpenBSD boots on mac99 and reaches the installer.
> +#
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +
> +from qemu_test import QemuSystemTest, Asset
> +from qemu_test import wait_for_console_pattern
> +
> +
> +class OpenBSDMac99(QemuSystemTest):
> +
> +    ASSET_CD = Asset(
> +        'https://ftp.eu.openbsd.org/pub/OpenBSD/7.9/macppc/cd79.iso',
> +        '227fef3d5089d56ce8376d8bfa28181ce5b19f0eceef0a6d82d58d8e52832b24')
> +
> +    def test_openbsd_79_installer(self):
> +        self.set_machine('mac99')
> +        self.require_accelerator('tcg')
> +        cdrom_path = self.ASSET_CD.fetch()
> +
> +        self.vm.set_console()
> +        self.vm.add_args('-M', 'via=cuda,graphics=off,usb=off',
> +                         '-cpu', '7400',
> +                         '-accel', 'tcg,thread=single',
> +                         '-smp', '1',
> +                         '-m', '2g',
> +                         '-nic', 'none',
> +                         '-device', 'VGA',
> +                         '-global', 'cuda.x-sr-delay-ns=0',
> +                         '-prom-env', 'input-device=ttya',
> +                         '-prom-env', 'output-device=ttya',
> +                         '-cdrom', cdrom_path,
> +                         '-boot', 'd',
> +                         '-no-reboot')
> +        self.vm.launch()
> +
> +        wait_for_console_pattern(self, 'OpenBSD 7.9 (RAMDISK)', 'panic:')
> +        wait_for_console_pattern(
> +            self,
> +            '(I)nstall, (U)pgrade, (A)utoinstall or (S)hell?',
> +            'panic:')
> +
> +
> +if __name__ == '__main__':
> +    QemuSystemTest.main()

Reviewed-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>


ATB,

Mark.
diff mbox series

Patch

diff --git a/tests/functional/ppc/meson.build b/tests/functional/ppc/meson.build
index ae061fe5a6..1055cdaa17 100644
--- a/tests/functional/ppc/meson.build
+++ b/tests/functional/ppc/meson.build
@@ -2,6 +2,7 @@ 
 
 test_ppc_timeouts = {
   '40p' : 240,
+  'openbsd' : 240,
 }
 
 tests_ppc_system_quick = [
@@ -15,6 +16,7 @@  tests_ppc_system_thorough = [
   'bamboo',
   'mac',
   'mpc8544ds',
+  'openbsd',
   'ppe42',
   'replay',
   'sam460ex',
diff --git a/tests/functional/ppc/test_openbsd.py b/tests/functional/ppc/test_openbsd.py
new file mode 100755
index 0000000000..73fa328b1f
--- /dev/null
+++ b/tests/functional/ppc/test_openbsd.py
@@ -0,0 +1,46 @@ 
+#!/usr/bin/env python3
+#
+# Test that OpenBSD boots on mac99 and reaches the installer.
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+from qemu_test import QemuSystemTest, Asset
+from qemu_test import wait_for_console_pattern
+
+
+class OpenBSDMac99(QemuSystemTest):
+
+    ASSET_CD = Asset(
+        'https://ftp.eu.openbsd.org/pub/OpenBSD/7.9/macppc/cd79.iso',
+        '227fef3d5089d56ce8376d8bfa28181ce5b19f0eceef0a6d82d58d8e52832b24')
+
+    def test_openbsd_79_installer(self):
+        self.set_machine('mac99')
+        self.require_accelerator('tcg')
+        cdrom_path = self.ASSET_CD.fetch()
+
+        self.vm.set_console()
+        self.vm.add_args('-M', 'via=cuda,graphics=off,usb=off',
+                         '-cpu', '7400',
+                         '-accel', 'tcg,thread=single',
+                         '-smp', '1',
+                         '-m', '2g',
+                         '-nic', 'none',
+                         '-device', 'VGA',
+                         '-global', 'cuda.x-sr-delay-ns=0',
+                         '-prom-env', 'input-device=ttya',
+                         '-prom-env', 'output-device=ttya',
+                         '-cdrom', cdrom_path,
+                         '-boot', 'd',
+                         '-no-reboot')
+        self.vm.launch()
+
+        wait_for_console_pattern(self, 'OpenBSD 7.9 (RAMDISK)', 'panic:')
+        wait_for_console_pattern(
+            self,
+            '(I)nstall, (U)pgrade, (A)utoinstall or (S)hell?',
+            'panic:')
+
+
+if __name__ == '__main__':
+    QemuSystemTest.main()