diff mbox series

[RFC,08/11] tests/avocado: Add ppc MacOS tests

Message ID 20231010075238.95646-9-npiggin@gmail.com
State Superseded
Headers show
Series ppc: avocado test additions and new defaults | expand

Commit Message

Nicholas Piggin Oct. 10, 2023, 7:52 a.m. UTC
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

Comments

Philippe Mathieu-Daudé Oct. 10, 2023, 7:58 a.m. UTC | #1
Hi Nicholas,

On 10/10/23 09:52, Nicholas Piggin wrote:
> 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_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')
> +

Nitpicking, I'd rather use:

        @skipUntil(os.getenv('MACOS10_IMAGE'),
                   'No MACOS10_IMAGE environment variable defined')

> +    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)

Please commit the hash if the image you used.

> +        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')

Why is that commented? If not needed, just drop, since your test
is already useful as it.

> +        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')
Nicholas Piggin Oct. 11, 2023, 12:25 a.m. UTC | #2
On Tue Oct 10, 2023 at 5:58 PM AEST, Philippe Mathieu-Daudé wrote:
> Hi Nicholas,
>
> On 10/10/23 09:52, Nicholas Piggin wrote:
> > 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_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')
> > +
>
> Nitpicking, I'd rather use:
>
>         @skipUntil(os.getenv('MACOS10_IMAGE'),
>                    'No MACOS10_IMAGE environment variable defined')

Aha I didn't know about that one. I don't think it's nitpicking, that's
a good suggestion, thank you.

> > +    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)
>
> Please commit the hash if the image you used.

Sure.

>
> > +        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')
>
> Why is that commented? If not needed, just drop, since your test
> is already useful as it.

Yeah I will. That was the option used by some scripts here but it
doesn't seem to work for me here, whereas the default IIRC sungem
does get networking up. Could be a QEMU regression so I was meaning
to try a bisect.

Thanks for the feedback on these. I'll leave the MacOS and AIX ones
out of the next ppc PR so there is more time for thought and
discussion about them.

Thanks,
Nick
diff mbox series

Patch

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')