From nobody Sat Nov 15 00:05:06 2025 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=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1759087727; cv=none; d=zohomail.com; s=zohoarc; b=gNcEJ8aRwd4e7bjr6wkH9/ip26fJEJf6ooEJS3vX6e/wWUV7tzPP3p9jT0MxNHjGXkRUtnPpKtsqng9CBiAyZxwgNIoeEv3zBWFq/D1z3AepB0uP3R/VfN2IURCd3FEEVB8hM5rClb646g4p2OXv1/Q7smIK5eWoK+5I1psk+wc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1759087727; h=Content-Type: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=t2dVqj0RnEQfN6IVne8zXWw9zvGscuKc8CYepQUxtsQ=; b=hjcrru/uLUXsUKEq5IhR9jigVJ5ElT1jpJVPuhhGMQ4kDZZhVVaznhphHl4iL+P/KmNRmYWIyucpaS9jkDiGNiwMG/ZBcWribIbDrWMQO+XLL1t8dyihh9bLLsAfGs6pF6xW89abtak+mm6dM9Xj8fZPUDZiaDMpwY9CDv/zV5w= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1759087727502413.7004485235525; Sun, 28 Sep 2025 12:28:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v2x3b-000343-W0; Sun, 28 Sep 2025 15:27:41 -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 1v2x3N-0002qN-T2 for qemu-devel@nongnu.org; Sun, 28 Sep 2025 15:27:26 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v2x37-00045m-KR for qemu-devel@nongnu.org; Sun, 28 Sep 2025 15:27:24 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58S4x4tP003960; Sun, 28 Sep 2025 19:27:05 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49e6bh6qb9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 28 Sep 2025 19:27:05 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58SH6FeL020061; Sun, 28 Sep 2025 19:27:04 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 49et8ru1cg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Sun, 28 Sep 2025 19:27:04 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58SJR2nA34669234 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sun, 28 Sep 2025 19:27:02 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7C18120049; Sun, 28 Sep 2025 19:27:02 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4970A20040; Sun, 28 Sep 2025 19:27:01 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.39.17.115]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Sun, 28 Sep 2025 19:27:01 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=t2dVqj 0RnEQfN6IVne8zXWw9zvGscuKc8CYepQUxtsQ=; b=dKqIhgEcHY8d6OwlG+nMfC 9xnAW1nfCQrWRwXtrsgQRRplgCbB847ganxKL8l+YV0xWCgiIA34p12mabxmfZUg PgOxuRZNWK0SPcl73xMlDBFLhfmk0tk70iBRfuU6tQFirriqE/yIDIAJjJ1IpH3x 7p0ohmJCPXoHCZyvWC1MPFehZw1XDt4TL9tUfCBr+eMb+mS9E9xs90hirsoksMd5 XwqmlN7+0pXFqYge4jigYX7GLr6QkgeSVMMQeWckeIZmk1KSzTOYZflsSt+y7CZF KgtFQjaKB0PUcLRCHFhUMK5MZ0hFXJ5K/eXX5I0+g6hdniqnRVbkpepE/63EI1Jw == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: Glenn Miles , Thomas Huth , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 17/27] tests/functional: Add test for IBM PPE42 instructions Date: Mon, 29 Sep 2025 00:56:19 +0530 Message-ID: <20250928192629.139822-18-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250928192629.139822-1-harshpb@linux.ibm.com> References: <20250928192629.139822-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=Se/6t/Ru c=1 sm=1 tr=0 ts=68d98c09 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=f7IdgyKtn90A:10 a=NEAV23lmAAAA:8 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=20KFwNOVAAAA:8 a=69wJf7TsAAAA:8 a=up-X0YpDAAAA:8 a=WP5zsaevAAAA:8 a=owGci2yUw_qu13iuslYA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=Fg1AiH1G6rFz08G2ETeA:22 a=86FmjZgct7XXK6GGpxvI:22 a=t8Kx07QrZZTALmIZmm-o:22 a=poXaRoVlC6wW9_mwW8W4:22 a=oH34dK2VZjykjzsv8OSz:22 a=Z5ABNNGmrOfJ6cZ5bIyy:22 a=bWyr8ysk75zN3GCy5bjg:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTI3MDAxMCBTYWx0ZWRfX0pKb+LpelapU /1voaeKz4yfz5ykXvEuArItLkjf+lBwxicgXA4BYCf2WX6b5zBLkxIbaqg731CHBBKyYISdVyQ0 YSPxYUHmjyICNYw/XykX2+ZUPX5oSVS25MBWyvQkXooHzQMxSpANGcPBfU9vjEBnzzj/Ih/eWQB fp2RH+XPio/wzrnhldSouhoRG7sUnPxsXSMjQCWT1+LBugvMiWHANBJnhHIukDN4cLeZl+kYT0E kaKjRO23mIaQsUNll8bZjBy8CxZkHxnDxw/8Hym0hMolqOWoANk3tP55QmWUZ37NTBi8E4tiupe PC2/uAlqKRH/EQ3l5gm+YHvcKjR0EZttIVRVYqIZhzbYlpJSLdDacG6yxq7qS9aLlFKVNQLRH1K +vTqw0yKq389/nMQEEtCMGSDyIrDCA== X-Proofpoint-GUID: B2wxAZWnXxbra6-zVuWsClaKtCPlXyZr X-Proofpoint-ORIG-GUID: B2wxAZWnXxbra6-zVuWsClaKtCPlXyZr X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-28_08,2025-09-26_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 priorityscore=1501 adultscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2509150000 definitions=main-2509270010 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=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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 @ibm.com) X-ZM-MESSAGEID: 1759087728425116600 From: Glenn Miles Adds a functional test for the IBM PPE42 instructions which downloads a test image from a public github repo and then loads and executes the image. (see https://github.com/milesg-github/ppe42-tests for details) Test status is checked by periodically issuing 'info register' commands and checking the NIP value. If the NIP is 0xFFF80200 then the test successfully executed to completion. If the machine stops before the test completes or if a 90 second timeout is reached, then the test is marked as having failed. This test does not test any PowerPC instructions as it is expected that these instructions are well covered in other tests. Only instructions that are unique to the IBM PPE42 processor are tested. Signed-off-by: Glenn Miles Reviewed-by: Thomas Huth Tested-by: C=C3=A9dric Le Goater Signed-off-by: Harsh Prateek Bora Link: https://lore.kernel.org/r/20250925201758.652077-10-milesg@linux.ibm.c= om Message-ID: <20250925201758.652077-10-milesg@linux.ibm.com> --- MAINTAINERS | 1 + tests/functional/ppc/meson.build | 1 + tests/functional/ppc/test_ppe42.py | 79 ++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 tests/functional/ppc/test_ppe42.py diff --git a/MAINTAINERS b/MAINTAINERS index 2ed9eb9353..406cef88f0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1535,6 +1535,7 @@ M: Glenn Miles L: qemu-ppc@nongnu.org S: Odd Fixes F: hw/ppc/ppe42_machine.c +F: tests/functional/ppc/test_ppe42.py =20 PReP M: Herv=C3=A9 Poussineau diff --git a/tests/functional/ppc/meson.build b/tests/functional/ppc/meson.= build index 3d562010d8..ae061fe5a6 100644 --- a/tests/functional/ppc/meson.build +++ b/tests/functional/ppc/meson.build @@ -15,6 +15,7 @@ tests_ppc_system_thorough =3D [ 'bamboo', 'mac', 'mpc8544ds', + 'ppe42', 'replay', 'sam460ex', 'tuxrun', diff --git a/tests/functional/ppc/test_ppe42.py b/tests/functional/ppc/test= _ppe42.py new file mode 100644 index 0000000000..26bbe11b2d --- /dev/null +++ b/tests/functional/ppc/test_ppe42.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python3 +# +# Functional tests for the IBM PPE42 processor +# +# Copyright (c) 2025, IBM Corporation +# +# SPDX-License-Identifier: GPL-2.0-or-later + +from qemu_test import QemuSystemTest, Asset +import asyncio + +class Ppe42Machine(QemuSystemTest): + + timeout =3D 90 + poll_period =3D 1.0 + + ASSET_PPE42_TEST_IMAGE =3D Asset( + ('https://github.com/milesg-github/ppe42-tests/raw/refs/heads/main= /' + 'images/ppe42-test.out'), + '03c1ac0fb7f6c025102a02776a93b35101dae7c14b75e4eab36a337e39042ea8') + + def _test_completed(self): + self.log.info("Checking for test completion...") + try: + output =3D self.vm.cmd('human-monitor-command', + command_line=3D'info registers') + except Exception as err: + self.log.debug(f"'info registers' cmd failed due to {err=3D}," + " {type(err)=3D}") + raise + + self.log.info(output) + if "NIP fff80200" in output: + self.log.info("") + return True + else: + self.log.info("") + return False + + def _wait_pass_fail(self, timeout): + while not self._test_completed(): + if timeout >=3D self.poll_period: + timeout =3D timeout - self.poll_period + self.log.info(f"Waiting {self.poll_period} seconds for tes= t" + " to complete...") + e =3D None + try: + e =3D self.vm.event_wait('STOP', self.poll_period) + + except asyncio.TimeoutError: + self.log.info("Poll period ended.") + pass + + except Exception as err: + self.log.debug(f"event_wait() failed due to {err=3D}," + " {type(err)=3D}") + raise + + if e !=3D None: + self.log.debug(f"Execution stopped: {e}") + self.log.debug("Exiting due to test failure") + self.fail("Failure detected!") + break + else: + self.fail("Timed out waiting for test completion.") + + def test_ppe42_instructions(self): + self.set_machine('ppe42_machine') + self.require_accelerator("tcg") + image_path =3D self.ASSET_PPE42_TEST_IMAGE.fetch() + self.vm.add_args('-nographic') + self.vm.add_args('-device', f'loader,file=3D{image_path}') + self.vm.add_args('-device', 'loader,addr=3D0xfff80040,cpu-num=3D0') + self.vm.add_args('-action', 'panic=3Dpause') + self.vm.launch() + self._wait_pass_fail(self.timeout) + +if __name__ =3D=3D '__main__': + QemuSystemTest.main() --=20 2.43.5