From nobody Mon Feb 9 23:16:02 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1696924566; cv=none; d=zohomail.com; s=zohoarc; b=GXqeLWU8Oirv4ReJ892jsnCrZl4bvJ5PyO/Vg0RNtzNsXiA651BsMVVd1aRQkolVdmg87M6eTwKnoKRp1fhZj88eG1GA/tzwAUtNM3NJlcH2gPZZB1wAja8Pb2/weoca7vUhHVM314pr0qtRMClNKEzYpc8NUc/Nl1k92vDlCyU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1696924566; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=RLNYJ8t4jqLnyryhAA2gveg7y+jnACsL6CwNdvnZIrM=; b=Jbi2NGb/ZMOFUGbMAIhDw9ievh6j0LTX7OmjwTWjiru8HzEsNHmkYD+t7Fkvbuv4TidWUFI2zUhotQePD/LOW01FpVThl6x5HWFLwHi9Ag2mZyM+vwQ4efYOScQ/HJ77WzMRGgnb0BDvY/wYnBeNTaY2M4ENPhfbvuO1gx0bqJ0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1696924566984522.2509906055845; Tue, 10 Oct 2023 00:56:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qq7YX-0005oQ-8J; Tue, 10 Oct 2023 03:53:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qq7YV-0005hg-FU; Tue, 10 Oct 2023 03:53:27 -0400 Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qq7YP-0005Jm-MX; Tue, 10 Oct 2023 03:53:27 -0400 Received: by mail-ot1-x32f.google.com with SMTP id 46e09a7af769-6c615df24c0so3647999a34.1; Tue, 10 Oct 2023 00:53:21 -0700 (PDT) Received: from wheely.local0.net (27-33-247-209.tpgi.com.au. [27.33.247.209]) by smtp.gmail.com with ESMTPSA id a21-20020a62e215000000b0069353ac3d3esm7548102pfi.38.2023.10.10.00.53.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 00:53:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696924400; x=1697529200; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=RLNYJ8t4jqLnyryhAA2gveg7y+jnACsL6CwNdvnZIrM=; b=gXSfAUV13+n329L8YzEP208ECjCiOAemcVG9SHjhCuvC6aceamkyXvlu4aC9I4vmdX NASSyL4B6NugAsr2il9ul6tkdn4/M7bjSt07rhSxmlsjH1KRQLJ8UlibCzkDsuDg6MIG XIeTKLL4u1ncJIIt0djNsY4OhhlHx/I78R4hEarLLv/evbWECAjQjoqmjGGZoQCu8hsn PbdfPbLecPCaKYcb3bsgtBFfkVAvQPvMpaGNKugIU1Q/oaz/6PxlUQjGVURKLGDDu/Aw 1AQZSbo/xIH6GXQLyZMbmzAIpkCtSTOuRzrBe5786oTzjeDWE0w7rjMaOmWkGRj4bz0F ZPjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696924400; x=1697529200; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RLNYJ8t4jqLnyryhAA2gveg7y+jnACsL6CwNdvnZIrM=; b=SJ3QWqBqKZbPuBkaSrGYnR1m3k6ZznnsBB8ZC1PnPGn0DDoXiDPVywKluq04qes6Tr bKcxyLyDHuGfG3zZfTF4wr/+vk5Bzv3gMKSltcq1qYsOLQ7OopqQQtPzbrk6Wa00OYg0 GOLcXKHKwYpVUQffBOhs/eBoK12fQHFxUKLGs3qJ3RA0OuITIVs8EFrxnjUqNh6AMVYZ JfGEK8AiuczQX7UlVNJcSaxcLzMYnPBgFrMicTuKVrI/FlDrFBhvZnTl8GdUb7UsmQZJ lN34og6WFyyoza312s7hnAxjt+duZT+VeR0KJBIw4ZSXWPezACLLchZ+9/Fo0S6J19Oj di6g== X-Gm-Message-State: AOJu0YxR76kPI5zipUDpYqksyArWQv44plECe5cwJNFxm1oJ391gd7Bk pcPRrRHB1xxZmiqaC4d1QnHwN6QK338= X-Google-Smtp-Source: AGHT+IFwCh5mIGoNAK1aKuCO2X3Z1H/XvGbQu+ELyg2TMew9bitKmKaq0fLn8RQuTttSeDp/DM+nEw== X-Received: by 2002:a05:6870:e307:b0:1bb:a227:7008 with SMTP id z7-20020a056870e30700b001bba2277008mr19284238oad.3.1696924399169; Tue, 10 Oct 2023 00:53:19 -0700 (PDT) From: Nicholas Piggin To: qemu-ppc@nongnu.org Cc: Nicholas Piggin , Cleber Rosa , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Beraldo Leal , qemu-devel@nongnu.org Subject: [RFC PATCH 08/11] tests/avocado: Add ppc MacOS tests Date: Tue, 10 Oct 2023 17:52:35 +1000 Message-ID: <20231010075238.95646-9-npiggin@gmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231010075238.95646-1-npiggin@gmail.com> References: <20231010075238.95646-1-npiggin@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::32f; envelope-from=npiggin@gmail.com; helo=mail-ot1-x32f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1696924569248100001 Content-Type: text/plain; charset="utf-8" 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..662d1a5a0fec47a589dbc03ed3b= 10b3d653c07f1 GIT binary patch literal 921615 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

gKoqB-=3DF|TZhcFEznlsH!lX>#~a#|~3Q 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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 =3D 240 + + def test_macos9(self): + """ + :avocado: tags=3Darch:ppc + :avocado: tags=3Dmachine:mac99 + :avocado: tags=3Ddevice:framebuffer + """ + + basedir =3D os.getenv('AVOCADO_TEST_BASEDIR') + screenshot_path =3D os.path.join(basedir, 'ppc/macos9.ppm') + + image =3D os.getenv('MACOS9_IMAGE') + if not image: + self.cancel('No MACOS9_IMAGE environment variable defined') + drive_path =3D self.fetch_asset(image) + + self.vm.set_console() + self.vm.add_args('-M', 'via=3Dpmu') + self.vm.add_args('-m', '1g') + self.vm.add_args('-cpu', 'G4') + self.vm.add_args('-drive', 'file=3D' + drive_path) +# self.vm.add_args('-net', 'nic,model=3Drtl8139') +# self.vm.add_args('-net', 'user,hostfwd=3D:127.0.0.1:2223-:22,host= name=3Dqemu') + 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=3D'.ppm', + prefix=3D'screendump-', delete=3D= False) as ppmfile: + self.vm.command('screendump', filename=3Dppmfile.name) + if not filecmp.cmp(ppmfile.name, screenshot_path): + self.fail('Screenshot does not match') + + def test_macos10(self): + """ + :avocado: tags=3Darch:ppc + :avocado: tags=3Dmachine:mac99 + :avocado: tags=3Ddevice:framebuffer + """ + + basedir =3D os.getenv('AVOCADO_TEST_BASEDIR') + screenshot_path =3D os.path.join(basedir, 'ppc/macos10.ppm') + + image =3D os.getenv('MACOS10_IMAGE') + if not image: + self.cancel('No MACOS10_IMAGE environment variable defined') + drive_path =3D self.fetch_asset(image) + + self.vm.set_console() + self.vm.add_args('-M', 'via=3Dpmu') + self.vm.add_args('-m', '1g') + self.vm.add_args('-cpu', 'G4') + self.vm.add_args('-drive', 'file=3D' + drive_path) +# self.vm.add_args('-net', 'nic,model=3Drtl8139') +# self.vm.add_args('-net', 'user,hostfwd=3D:127.0.0.1:2223-:22,host= name=3Dqemu') + 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=3D'.ppm', + prefix=3D'screendump-', delete=3D= False) as ppmfile: + self.vm.command('screendump', filename=3Dppmfile.name) + if not filecmp.cmp(ppmfile.name, screenshot_path): + self.fail('Screenshot does not match') --=20 2.42.0