From nobody Sat Feb 7 12:35:11 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+90390+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+90390+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1654770444; cv=none; d=zohomail.com; s=zohoarc; b=Vp9eKL3H5guuLMrM8Rav9qRWBFrMxq6TuDrvyhsiWbzq7Zry4eG0LP9m/vGXzjr4/nqV2I4fSU1hH5Gjdbn4+NmJcUO2JphsFNFKQ3oO0RidcPz6V1gam+cf+ueowER2ahdTG6oZ/+Ma8FKENxv4XL2uTid8s+wCf58vMW8KNOw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1654770444; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=gm+aYMOFBkCIHeipY9PYV3EuXCByHwY5HqZTeIfPMd8=; b=LW97c/SCOazqhKWXNJtTCQnfyJlgmtAE7nee872S8vCOptPNKZO9inMgmc0HPobb7+aSnTdujBWCaNb4ODfz8t4WFTTZaGZY5/4sYcrbQ9GG8HIkRP3/yREhIvvp67WfSQmraYY/u74V7dHcmNgDhT9mLWgm/MYy+LwLPBiuBoY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+90390+1787277+3901457@groups.io Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1654770444634876.5249686166593; Thu, 9 Jun 2022 03:27:24 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id hT2qYY1788612xMAl7oqgNc3; Thu, 09 Jun 2022 03:27:23 -0700 X-Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) by mx.groups.io with SMTP id smtpd.web11.9529.1654770443183515665 for ; Thu, 09 Jun 2022 03:27:23 -0700 X-Received: by mail-pj1-f44.google.com with SMTP id u12-20020a17090a1d4c00b001df78c7c209so26314609pju.1 for ; Thu, 09 Jun 2022 03:27:23 -0700 (PDT) X-Gm-Message-State: kVeTyeobd6ejlRRkoKWRm9E7x1787277AA= X-Google-Smtp-Source: ABdhPJxzVjxZwGwHOQ6CSW4bFIj7BCYv8b1mdysqlheetdu1RWO+3Vb8SBCei2wa4Ws95qLgtdH4Zw== X-Received: by 2002:a17:902:d2c9:b0:163:bdee:b2df with SMTP id n9-20020a170902d2c900b00163bdeeb2dfmr39102730plc.98.1654770442387; Thu, 09 Jun 2022 03:27:22 -0700 (PDT) X-Received: from kerodipc.Dlink ([49.206.9.238]) by smtp.gmail.com with ESMTPSA id e5-20020a170902784500b00163f8eb7eb3sm16994168pln.196.2022.06.09.03.27.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 Jun 2022 03:27:22 -0700 (PDT) From: "Sunil V L" To: devel@edk2.groups.io Cc: Sunil V L , G Edhaya Chandran , Barton Gao , Carolyn Gjertsen , Samer El-Haj-Mahmoud , Eric Jin , Arvin Chen , Supreeth Venkatesh , Ard Biesheuvel , Heinrich Schuchardt , Abner Chang Subject: [edk2-devel] [PATCH 2/5] uefi-sct/SctPkg: Add test cases for RISCV_EFI_BOOT_PROTOCOL Date: Thu, 9 Jun 2022 15:57:06 +0530 Message-Id: <20220609102709.957985-3-sunilvl@ventanamicro.com> In-Reply-To: <20220609102709.957985-1-sunilvl@ventanamicro.com> References: <20220609102709.957985-1-sunilvl@ventanamicro.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,sunilvl@ventanamicro.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1654770443; bh=wfbPaUt8b66U8NPsyQ4M3OrUMrAoV7FqmoYgJJIn6I4=; h=Cc:Date:From:Reply-To:Subject:To; b=prRApdC4zMViBrw3wfTgY9c5Bg9ecdMjEDhKX+jjLSeZToccYt/0J2kcoP8c+Kbm+TM 0kbpy8HChHAGTU83B84k4iLe+/vw1qz3UBNeadHxfgCVT1iJV+yWdK/Go4EyDuLwZTK1W Cvx+OYQmod1IwVu+Lkq80KbBHVyeJ9XIzdc= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1654770446195100001 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3837 RISC-V platforms need to support new RISCV_EFI_BOOT_PROTOCOL to communicate the boot hart ID to the operating system. Add the required test cases for this protocol. The specification of the protocol is maintained at: https://github.com/riscv-non-isa/riscv-uefi The test case specification is attached in the Bugzilla. Cc: G Edhaya Chandran Cc: Barton Gao Cc: Carolyn Gjertsen Cc: Samer El-Haj-Mahmoud Cc: Eric Jin Cc: Arvin Chen Cc: Supreeth Venkatesh Cc: Ard Biesheuvel Cc: Heinrich Schuchardt Cc: Abner Chang Signed-off-by: Sunil V L Reviewed-by: Heinrich Schuchardt Tested-by: Heinrich Schuchardt Reviewed-by: G Edhaya Chandran --- .../EFI/Protocol/RiscV/BlackBoxTest/Guid.c | 38 ++++ .../EFI/Protocol/RiscV/BlackBoxTest/Guid.h | 50 +++++ .../BlackBoxTest/RiscVBootProtocolBBTest.inf | 50 +++++ .../RiscVBootProtocolBBTestConformance.c | 171 ++++++++++++++++++ .../RiscVBootProtocolBBTestFunction.c | 124 +++++++++++++ .../RiscVBootProtocolBBTestMain.c | 122 +++++++++++++ .../RiscVBootProtocolBBTestMain.h | 112 ++++++++++++ 7 files changed, 667 insertions(+) create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackB= oxTest/Guid.c create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackB= oxTest/Guid.h create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackB= oxTest/RiscVBootProtocolBBTest.inf create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackB= oxTest/RiscVBootProtocolBBTestConformance.c create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackB= oxTest/RiscVBootProtocolBBTestFunction.c create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackB= oxTest/RiscVBootProtocolBBTestMain.c create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackB= oxTest/RiscVBootProtocolBBTestMain.h diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/= Guid.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/Guid= .c new file mode 100644 index 00000000..693f5a9f --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/Guid.c @@ -0,0 +1,38 @@ +/** @file + + Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BS= D License + which accompanies this distribution. The full text of the license may b= e found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMP= LIED. + +**/ +/*++ + + Module Name: + + Guid.c + + Abstract: + + GUIDs auto-generated for EFI test assertion. + +--*/ + +#include "Efi.h" +#include "Guid.h" + + +EFI_GUID gGetBootHartIdBBTestConformanceAssertionGuid001 =3D EFI_TEST_RISC= V_BOOT_PROTOCOL_BBTESTCONFORMANCE_ASSERTION_001_GUID; + +EFI_GUID gGetBootHartIdBBTestConformanceAssertionGuid002 =3D EFI_TEST_RISC= V_BOOT_PROTOCOL_BBTESTCONFORMANCE_ASSERTION_002_GUID; + +EFI_GUID gGetBootHartIdBBTestConformanceAssertionGuid003 =3D EFI_TEST_RISC= V_BOOT_PROTOCOL_BBTESTCONFORMANCE_ASSERTION_003_GUID; + +EFI_GUID gGetBootHartIdBBTestFunctionAssertionGuid001 =3D EFI_TEST_RISCV_B= OOT_PROTOCOL_BBTESTFUNCTION_ASSERTION_001_GUID; + +EFI_GUID gGetBootHartIdBBTestFunctionAssertionGuid002 =3D EFI_TEST_RISCV_B= OOT_PROTOCOL_BBTESTFUNCTION_ASSERTION_002_GUID; diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/= Guid.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/Guid= .h new file mode 100644 index 00000000..bf527072 --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/Guid.h @@ -0,0 +1,50 @@ +/** @file + + Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BS= D License + which accompanies this distribution. The full text of the license may b= e found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMP= LIED. + +**/ +/*++ + + Module Name: + + Guid.h + + Abstract: + + GUIDs auto-generated for EFI test assertion. + +--*/ + + +#define EFI_TEST_RISCV_BOOT_PROTOCOL_BBTESTCONFORMANCE_ASSERTION_001_GUID \ +{ 0x5ccf7e22, 0x5ca1, 0x433c, { 0x97, 0xb4, 0xea, 0x3a, 0xb8, 0x49, 0xf7, = 0x03 } } + +extern EFI_GUID gGetBootHartIdBBTestConformanceAssertionGuid001; + +#define EFI_TEST_RISCV_BOOT_PROTOCOL_BBTESTCONFORMANCE_ASSERTION_002_GUID \ +{ 0xa07c08ba, 0x8581, 0x477a, { 0x85, 0xe2, 0x69, 0x88, 0xa5, 0xb3, 0xd4, = 0xec } } + +extern EFI_GUID gGetBootHartIdBBTestConformanceAssertionGuid002; + +#define EFI_TEST_RISCV_BOOT_PROTOCOL_BBTESTCONFORMANCE_ASSERTION_003_GUID \ +{ 0x00b63b3a, 0xd91d, 0x4175, { 0x8c, 0xee, 0xf9, 0xca, 0x63, 0xf5, 0x84, = 0x1c } } + +extern EFI_GUID gGetBootHartIdBBTestConformanceAssertionGuid003; + +#define EFI_TEST_RISCV_BOOT_PROTOCOL_BBTESTFUNCTION_ASSERTION_001_GUID \ +{ 0xe3a8b4a8, 0x866c, 0x4513, { 0x86, 0xb3, 0x61, 0x1d, 0x02, 0x52, 0x2f, = 0x81 } } + +extern EFI_GUID gGetBootHartIdBBTestFunctionAssertionGuid001; + +#define EFI_TEST_RISCV_BOOT_PROTOCOL_BBTESTFUNCTION_ASSERTION_002_GUID \ +{ 0x8fbbf9d8, 0x0ab2, 0x481d, { 0xb5, 0xe0, 0x5f, 0x29, 0x99, 0xd3, 0xcb, = 0x34 } } + +extern EFI_GUID gGetBootHartIdBBTestFunctionAssertionGuid002; diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/= RiscVBootProtocolBBTest.inf b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/Ri= scV/BlackBoxTest/RiscVBootProtocolBBTest.inf new file mode 100644 index 00000000..fc1f3aba --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/RiscVBo= otProtocolBBTest.inf @@ -0,0 +1,50 @@ +## @file +# +# Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the B= SD License +# which accompanies this distribution. The full text of the license may = be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. +# +## +#/*++ +# +# Module Name: +# +# RiscVBootProtocolBBTest.inf +# +# Abstract: +# +# Component description file for RISC-V Boot Protocol Black-Box Test. +# +#--*/ + +[defines] + INF_VERSION =3D 0x00010005 + BASE_NAME =3D RiscVBootProtocolBBTest + FILE_GUID =3D DC33F790-D1EE-41A7-A114-1DF84FF7110B + MODULE_TYPE =3D UEFI_DRIVER + VERSION_STRING =3D 1.0 + ENTRY_POINT =3D InitializeBBTestRiscVBootProtocol + +[sources.common] + RiscVBootProtocolBBTestConformance.c + RiscVBootProtocolBBTestFunction.c + RiscVBootProtocolBBTestMain.c + Guid.c + +[Packages] + MdePkg/MdePkg.dec + SctPkg/SctPkg.dec + SctPkg/UEFI/UEFI.dec + +[LibraryClasses] + UefiDriverEntryPoint + SctLib + EfiTestLib + +[Protocols] diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/= RiscVBootProtocolBBTestConformance.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Pr= otocol/RiscV/BlackBoxTest/RiscVBootProtocolBBTestConformance.c new file mode 100644 index 00000000..a7d498a9 --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/RiscVBo= otProtocolBBTestConformance.c @@ -0,0 +1,171 @@ +/** @file + + Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BS= D License + which accompanies this distribution. The full text of the license may b= e found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMP= LIED. + +**/ +/*++ + +Module Name: + RiscVBootProtocolBBTestConformance.c + +Abstract: + for EFI Driver RISC-V Boot Protocol's Conformance Test + +--*/ +#include "SctLib.h" +#include "RiscVBootProtocolBBTestMain.h" + + +EFI_STATUS +BBTestGetBootHartIdConformanceTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ) +{ + EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib; + EFI_STATUS Status; + RISCV_EFI_BOOT_PROTOCOL *RiscVBoot; + + // + // init + // + RiscVBoot =3D (RISCV_EFI_BOOT_PROTOCOL*)ClientInterface; + + // + // Get the Standard Library Interface + // + Status =3D gtBS->HandleProtocol ( + SupportHandle, + &gEfiStandardTestLibraryGuid, + (VOID **) &StandardLib + ); + if (EFI_ERROR(Status)) { + return Status; + } + + BBTestGetBootHartIdConformanceTestCheckpoint1 (StandardLib, RiscVBoot); + + BBTestGetBootHartIdConformanceTestCheckpoint2 (StandardLib, RiscVBoot); + + BBTestGetBootHartIdConformanceTestCheckpoint3 (StandardLib, RiscVBoot); + + return EFI_SUCCESS; +} + +EFI_STATUS +BBTestGetBootHartIdConformanceTestCheckpoint1 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN RISCV_EFI_BOOT_PROTOCOL *RiscVBoot + ) +{ + EFI_STATUS Status; + EFI_TEST_ASSERTION AssertionType; + UINTN hartid; + + // + // with "This" pointer being NULL. + // + Status =3D RiscVBoot->GetBootHartId ( + NULL, + &hartid + ); + if (EFI_INVALID_PARAMETER =3D=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gGetBootHartIdBBTestConformanceAssertionGuid001, + L"RISCV_EFI_BOOT_PROTOCOL - GetBootHartId() returns EFI_I= NVALID_PARAMETER with This pointer as NULL.", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + return EFI_SUCCESS; +} + +EFI_STATUS +BBTestGetBootHartIdConformanceTestCheckpoint2 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN RISCV_EFI_BOOT_PROTOCOL *RiscVBoot + ) +{ + EFI_STATUS Status; + EFI_TEST_ASSERTION AssertionType; + UINTN hartid; + RISCV_EFI_BOOT_PROTOCOL protocol; + + // + // with "This" pointer being some thing other than located protocol. + // + Status =3D RiscVBoot->GetBootHartId ( + &protocol, + &hartid + ); + if (EFI_INVALID_PARAMETER =3D=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gGetBootHartIdBBTestConformanceAssertionGuid001, + L"RISCV_EFI_BOOT_PROTOCOL - GetBootHartId() returns EFI_I= NVALID_PARAMETER with invalid This pointer.", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + return EFI_SUCCESS; +} + +EFI_STATUS +BBTestGetBootHartIdConformanceTestCheckpoint3 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN RISCV_EFI_BOOT_PROTOCOL *RiscVBoot + ) +{ + EFI_STATUS Status; + EFI_TEST_ASSERTION AssertionType; + + // + // with BootHartId as NULL pointer. + // + Status =3D RiscVBoot->GetBootHartId ( + RiscVBoot, + NULL + ); + if (EFI_INVALID_PARAMETER =3D=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gGetBootHartIdBBTestConformanceAssertionGuid001, + L"RISCV_EFI_BOOT_PROTOCOL - GetBootHartId() returns EFI_I= NVALID_PARAMETER with NULL BootHartId pointer.", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + return EFI_SUCCESS; +} diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/= RiscVBootProtocolBBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Proto= col/RiscV/BlackBoxTest/RiscVBootProtocolBBTestFunction.c new file mode 100644 index 00000000..c991223e --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/RiscVBo= otProtocolBBTestFunction.c @@ -0,0 +1,124 @@ +/** @file + + Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BS= D License + which accompanies this distribution. The full text of the license may b= e found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMP= LIED. + +**/ +/*++ + +Module Name: + RiscVBootProtocolBBTestFunction.c + +Abstract: + for EFI Driver RISC-V Boot Protocol's function Test + +--*/ +#include "SctLib.h" +#include "RiscVBootProtocolBBTestMain.h" + +EFI_STATUS +BBTestGetBootHartIdFunctionTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ) +{ + EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib; + EFI_STATUS Status; + RISCV_EFI_BOOT_PROTOCOL *RiscVBoot; + + // + // init + // + RiscVBoot =3D (RISCV_EFI_BOOT_PROTOCOL*)ClientInterface; + + // + // Get the Standard Library Interface + // + Status =3D gtBS->HandleProtocol ( + SupportHandle, + &gEfiStandardTestLibraryGuid, + (VOID **) &StandardLib + ); + if (EFI_ERROR(Status)) { + return Status; + } + + BBTestGetBootHartIdFunctionTestCheckpoint1 (StandardLib, RiscVBoot); + + return EFI_SUCCESS; +} + + +EFI_STATUS +BBTestGetBootHartIdFunctionTestCheckpoint1 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN RISCV_EFI_BOOT_PROTOCOL *RiscVBoot + ) +{ + EFI_STATUS Status; + EFI_TEST_ASSERTION AssertionType; + UINTN hartid1 =3D 0xdead; + UINTN hartid2 =3D 0xbeef; + + + // + // with correct This and BoothartId pointers. + // + + Status =3D RiscVBoot->GetBootHartId ( + RiscVBoot, + &hartid1 + ); + if (EFI_SUCCESS =3D=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + } else { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gGetBootHartIdBBTestFunctionAssertionGuid001, + L"RISCV_EFI_BOOT_PROTOCOL.GetBootHartId - GetBootHartId()= returns EFI_SUCCESS with valid parameters.", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + // + // call again with correct This and BoothartId pointers to ensure hartid= is not changed. + // + + Status =3D RiscVBoot->GetBootHartId ( + RiscVBoot, + &hartid2 + ); + if (EFI_SUCCESS =3D=3D Status) { + AssertionType =3D EFI_TEST_ASSERTION_PASSED; + if (hartid1 !=3D hartid2) { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } + } else { + AssertionType =3D EFI_TEST_ASSERTION_FAILED; + } + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gGetBootHartIdBBTestFunctionAssertionGuid002, + L"RISCV_EFI_BOOT_PROTOCOL.GetBootHartId - GetBootHartId()= returned same hartid when called twice.", + L"%a:%d: Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + return EFI_SUCCESS; + + } diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/= RiscVBootProtocolBBTestMain.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/= RiscV/BlackBoxTest/RiscVBootProtocolBBTestMain.c new file mode 100644 index 00000000..f7ecf020 --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/RiscVBo= otProtocolBBTestMain.c @@ -0,0 +1,122 @@ +/** @file + + Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BS= D License + which accompanies this distribution. The full text of the license may b= e found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMP= LIED. + +**/ +/*++ + +Module Name: + + RiscVBootBBTestMain.c + +Abstract: + + Test Driver of RISC-V Boot Protocol + +--*/ + +#include "SctLib.h" +#include "RiscVBootProtocolBBTestMain.h" + +#define RISCV_EFI_BOOT_PROTOCOL_TEST_REVISION 0x00010000 + +// +// Global variables +// + +EFI_HANDLE mImageHandle; + + +EFI_BB_TEST_PROTOCOL_FIELD gBBTestProtocolField =3D { + RISCV_EFI_BOOT_PROTOCOL_TEST_REVISION, + RISCV_EFI_BOOT_PROTOCOL_GUID, + L"RISC-V Boot Protocol Test", + L"UEFI RISC-V Boot Protocol Black-Box Test" +}; + +EFI_GUID gSupportProtocolGuid[] =3D { + EFI_STANDARD_TEST_LIBRARY_GUID, + EFI_NULL_GUID +}; + +EFI_BB_TEST_ENTRY_FIELD gBBTestEntryField[] =3D { + { + RISCV_EFI_BOOT_PROTOCOL_TEST_ENTRY_GUID0101, + L"GetBootHartIdFunction", + L"Function test for RISC-V Boot Protocol GetBootHartId().", + EFI_TEST_LEVEL_MINIMAL, + gSupportProtocolGuid, + EFI_TEST_CASE_AUTO, + BBTestGetBootHartIdFunctionTest + }, + { + RISCV_EFI_BOOT_PROTOCOL_TEST_ENTRY_GUID0201, + L"GetBootHartIdConformance", + L"Conformance test for RISC-V Boot Protocol GetBootHartId().", + EFI_TEST_LEVEL_MINIMAL, + gSupportProtocolGuid, + EFI_TEST_CASE_AUTO, + BBTestGetBootHartIdConformanceTest + }, + 0 +}; + +EFI_BB_TEST_PROTOCOL *gBBTestProtocolInterface; + +// +// Unload function +// + +EFI_STATUS +EFIAPI +UnloadBBTestRiscVBootProtocol ( + IN EFI_HANDLE ImageHandle + ); + + +EFI_STATUS +EFIAPI +InitializeBBTestRiscVBootProtocol ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EfiInitializeTestLib (ImageHandle, SystemTable); + + // + // initialize test utility lib + // + + SctInitializeLib (ImageHandle, SystemTable); + + mImageHandle =3D ImageHandle; + + return EfiInitAndInstallBBTestInterface ( + &ImageHandle, + &gBBTestProtocolField, + gBBTestEntryField, + UnloadBBTestRiscVBootProtocol, + &gBBTestProtocolInterface + ); +} + + +EFI_STATUS +EFIAPI +UnloadBBTestRiscVBootProtocol ( + IN EFI_HANDLE ImageHandle + ) +{ + return EfiUninstallAndFreeBBTestInterface ( + ImageHandle, + gBBTestProtocolInterface + ); +} diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/= RiscVBootProtocolBBTestMain.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/= RiscV/BlackBoxTest/RiscVBootProtocolBBTestMain.h new file mode 100644 index 00000000..d9dc4018 --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/RiscV/BlackBoxTest/RiscVBo= otProtocolBBTestMain.h @@ -0,0 +1,112 @@ +/** @file + + Copyright (c) 2022, Ventana Micro Systems Inc. All rights reserved.
+ + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BS= D License + which accompanies this distribution. The full text of the license may b= e found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMP= LIED. + +**/ +/*++ + +Module Name: + + RiscVBootProtocolBBTestMain.h + +Abstract: + + Test Driver of RISC-V Boot Protocol header file + +--*/ + +#ifndef _RISCV_BOOT_PROTOCOL_BB_TEST_MAIN_H +#define _RISCV_BOOT_PROTOCOL_BB_TEST_MAIN_H + + +#include "Efi.h" +#include +#include +#include "Guid.h" + + +// +// One private signature +// +#define UEFI_SCTT_TABLE_SIGNATURE EFI_SIGNATURE_32 ('S', 'C', 'T', 'T') + +// +// Entry GUIDs for Func Test +// +#define RISCV_EFI_BOOT_PROTOCOL_TEST_ENTRY_GUID0101 \ +{0xa17fc0c9, 0x82d8, 0x499f, { 0x81, 0x03, 0xe1, 0x3c, 0x7d, 0x08, 0xed, 0= x57 } } + +// +// Entry GUIDs for Conf Test +// +#define RISCV_EFI_BOOT_PROTOCOL_TEST_ENTRY_GUID0201 \ +{0x69378fba, 0x4f73, 0x4632, { 0xad, 0x1e, 0x5b, 0x1c, 0x18, 0x84, 0x99, 0= x88 } } + + + +EFI_STATUS +EFIAPI +InitializeBBTestRiscVBootProtocol ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ); + +EFI_STATUS +EFIAPI +UnloadBBTestRiscVBootProtocol ( + IN EFI_HANDLE ImageHandle + ); + +// +// Prototypes: Test Cases +// + +EFI_STATUS +BBTestGetBootHartIdConformanceTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ); + +EFI_STATUS +BBTestGetBootHartIdConformanceTestCheckpoint1 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN RISCV_EFI_BOOT_PROTOCOL *RiscVBoot + ); + +EFI_STATUS +BBTestGetBootHartIdConformanceTestCheckpoint2 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN RISCV_EFI_BOOT_PROTOCOL *RiscVBoot + ); + +EFI_STATUS +BBTestGetBootHartIdConformanceTestCheckpoint3 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN RISCV_EFI_BOOT_PROTOCOL *RiscVBoot + ); + +EFI_STATUS +BBTestGetBootHartIdFunctionTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ); + +EFI_STATUS +BBTestGetBootHartIdFunctionTestCheckpoint1 ( + IN EFI_STANDARD_TEST_LIBRARY_PROTOCOL *StandardLib, + IN RISCV_EFI_BOOT_PROTOCOL *RiscVBoot + ); + +#endif --=20 2.25.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#90390): https://edk2.groups.io/g/devel/message/90390 Mute This Topic: https://groups.io/mt/91642396/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-