All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicholas Piggin <npiggin@gmail.com>
To: qemu-ppc@nongnu.org
Cc: "Nicholas Piggin" <npiggin@gmail.com>,
	"Cleber Rosa" <crosa@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Beraldo Leal" <bleal@redhat.com>,
	qemu-devel@nongnu.org
Subject: [RFC PATCH 08/11] tests/avocado: Add ppc MacOS tests
Date: Tue, 10 Oct 2023 17:52:35 +1000	[thread overview]
Message-ID: <20231010075238.95646-9-npiggin@gmail.com> (raw)
In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com>

Similarly to the AIX test, this adds some tests that can boot MacOS9
and OSX images that are provided.
---
 tests/avocado/ppc/macos9.ppm | Bin 0 -> 921615 bytes
 tests/avocado/ppc_macos.py   |  90 +++++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+)
 create mode 100644 tests/avocado/ppc/macos9.ppm
 create mode 100644 tests/avocado/ppc_macos.py

diff --git a/tests/avocado/ppc/macos9.ppm b/tests/avocado/ppc/macos9.ppm
new file mode 100644
index 0000000000000000000000000000000000000000..662d1a5a0fec47a589dbc03ed3b10b3d653c07f1
GIT binary patch
literal 921615
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

literal 0
HcmV?d00001

diff --git a/tests/avocado/ppc_macos.py b/tests/avocado/ppc_macos.py
new file mode 100644
index 0000000000..055fc3aca4
--- /dev/null
+++ b/tests/avocado/ppc_macos.py
@@ -0,0 +1,90 @@
+# Functional test that boots MacOS on ppc mac99
+#
+# Copyright (c) 2023 IBM Corporation
+#
+# 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 time
+import tempfile
+import filecmp
+import os
+
+from typing import List
+from avocado.utils import archive
+from avocado_qemu import QemuSystemTest
+from avocado_qemu import wait_for_console_pattern
+
+class PPCMacOSTest(QemuSystemTest):
+
+    timeout = 240
+
+    def test_macos9(self):
+        """
+        :avocado: tags=arch:ppc
+        :avocado: tags=machine:mac99
+        :avocado: tags=device:framebuffer
+        """
+
+        basedir = os.getenv('AVOCADO_TEST_BASEDIR')
+        screenshot_path = os.path.join(basedir, 'ppc/macos9.ppm')
+
+        image = os.getenv('MACOS9_IMAGE')
+        if not image:
+            self.cancel('No MACOS9_IMAGE environment variable defined')
+        drive_path = self.fetch_asset(image)
+
+        self.vm.set_console()
+        self.vm.add_args('-M', 'via=pmu')
+        self.vm.add_args('-m', '1g')
+        self.vm.add_args('-cpu', 'G4')
+        self.vm.add_args('-drive', 'file=' + drive_path)
+#        self.vm.add_args('-net', 'nic,model=rtl8139')
+#        self.vm.add_args('-net', 'user,hostfwd=:127.0.0.1:2223-:22,hostname=qemu')
+        self.vm.add_args('-vga', 'std')
+        self.vm.add_args('-g', '640x480')
+        self.vm.launch()
+
+        # This comes up after 60 seconds on a fast x86 CPU. Give it
+        # 180s to be sure.
+        time.sleep(180)
+        with tempfile.NamedTemporaryFile(suffix='.ppm',
+                                         prefix='screendump-', delete=False) as ppmfile:
+            self.vm.command('screendump', filename=ppmfile.name)
+            if not filecmp.cmp(ppmfile.name, screenshot_path):
+                self.fail('Screenshot does not match')
+
+    def test_macos10(self):
+        """
+        :avocado: tags=arch:ppc
+        :avocado: tags=machine:mac99
+        :avocado: tags=device:framebuffer
+        """
+
+        basedir = os.getenv('AVOCADO_TEST_BASEDIR')
+        screenshot_path = os.path.join(basedir, 'ppc/macos10.ppm')
+
+        image = os.getenv('MACOS10_IMAGE')
+        if not image:
+            self.cancel('No MACOS10_IMAGE environment variable defined')
+        drive_path = self.fetch_asset(image)
+
+        self.vm.set_console()
+        self.vm.add_args('-M', 'via=pmu')
+        self.vm.add_args('-m', '1g')
+        self.vm.add_args('-cpu', 'G4')
+        self.vm.add_args('-drive', 'file=' + drive_path)
+#        self.vm.add_args('-net', 'nic,model=rtl8139')
+#        self.vm.add_args('-net', 'user,hostfwd=:127.0.0.1:2223-:22,hostname=qemu')
+        self.vm.add_args('-vga', 'std')
+        self.vm.add_args('-g', '640x480')
+        self.vm.launch()
+
+        # This comes up after 60 seconds on a fast x86 CPU. Give it
+        # 180s to be sure.
+        time.sleep(180)
+        with tempfile.NamedTemporaryFile(suffix='.ppm',
+                                         prefix='screendump-', delete=False) as ppmfile:
+            self.vm.command('screendump', filename=ppmfile.name)
+            if not filecmp.cmp(ppmfile.name, screenshot_path):
+                self.fail('Screenshot does not match')
-- 
2.42.0



  parent reply	other threads:[~2023-10-10  7:56 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-10  7:52 [RFC PATCH 00/11] ppc: avocado test additions and new defaults Nicholas Piggin
2023-10-10  7:52 ` [RFC PATCH 01/11] tests/avocado: ppc add powernv10 boot_linux_console test Nicholas Piggin
2023-10-10  7:52 ` [RFC PATCH 02/11] tests/avocado: Add ppc pseries and powernv Hash MMU tests Nicholas Piggin
2023-10-16  8:40   ` Cédric Le Goater
2023-10-10  7:52 ` [RFC PATCH 03/11] tests/avocado: Add pseries KVM boot_linux test Nicholas Piggin
2023-10-10  7:52 ` [RFC PATCH 04/11] tests/avocado: ppc add hypervisor tests Nicholas Piggin
2023-10-16  6:39   ` Harsh Prateek Bora
2023-10-10  7:52 ` [RFC PATCH 05/11] testing/avocado: ppc add new BookE boot_linux_console.py tests Nicholas Piggin
2023-10-10  8:02   ` Philippe Mathieu-Daudé
2023-10-10 12:03   ` Joel Stanley
2023-10-10 20:53     ` Nicholas Piggin
2023-10-16  8:07       ` Cédric Le Goater
2023-10-16  8:32   ` Cédric Le Goater
2023-10-10  7:52 ` [RFC PATCH 06/11] tests/avocado: Add FreeBSD distro boot tests for ppc Nicholas Piggin
2023-10-10 21:55   ` Warner Losh
2023-10-11  0:36     ` Nicholas Piggin
2023-10-11  4:24       ` Warner Losh
2023-10-11  2:23     ` Nicholas Piggin
2023-10-11  4:25       ` Warner Losh
2023-10-10  7:52 ` [RFC PATCH 07/11] tests/avocado: Add ppc boot tests for non-free AIX images Nicholas Piggin
2023-10-10 12:43   ` Alex Bennée
2023-10-10 12:49     ` Philippe Mathieu-Daudé
2023-10-10 21:21       ` Nicholas Piggin
2023-10-10 13:01     ` Daniel P. Berrangé
2023-10-10 21:14       ` Nicholas Piggin
2023-10-10  7:52 ` Nicholas Piggin [this message]
2023-10-10  7:58   ` [RFC PATCH 08/11] tests/avocado: Add ppc MacOS tests Philippe Mathieu-Daudé
2023-10-11  0:25     ` Nicholas Piggin
2023-10-10  7:52 ` [RFC PATCH 09/11] tests/avocado: Use default CPU for pseries machine Nicholas Piggin
2023-10-10  7:52 ` [RFC PATCH 10/11] ppc/spapr: change pseries machine default to POWER10 CPU Nicholas Piggin
2023-10-10 12:08   ` Joel Stanley
2023-10-16  8:16   ` Cédric Le Goater
2023-10-10  7:52 ` [RFC PATCH 11/11] ppc/pnv: Change powernv default to powernv10 Nicholas Piggin
2023-10-10 12:05   ` Joel Stanley
2023-10-10 20:57     ` Nicholas Piggin
2023-10-16  1:59       ` Joel Stanley
2023-10-16  8:15   ` Cédric Le Goater
2023-10-10  7:59 ` [RFC PATCH 00/11] ppc: avocado test additions and new defaults Philippe Mathieu-Daudé

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231010075238.95646-9-npiggin@gmail.com \
    --to=npiggin@gmail.com \
    --cc=bleal@redhat.com \
    --cc=crosa@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=wainersm@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.