From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=217.140.101.70; helo=foss.arm.com; envelope-from=sakar.arora@arm.com; receiver=edk2-devel@lists.01.org Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by ml01.01.org (Postfix) with ESMTP id C0D4221B02822 for ; Tue, 6 Nov 2018 00:48:20 -0800 (PST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 18B3180D; Tue, 6 Nov 2018 00:48:20 -0800 (PST) Received: from u201365.usa.Arm.com (a75592.asiapac.arm.com [10.162.22.94]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 977FF3F5BD; Tue, 6 Nov 2018 00:48:16 -0800 (PST) From: Sakar Arora To: edk2-devel@lists.01.org Cc: Supreeth.Venkatesh@arm.com, prasanth.pulla@arm.com Date: Tue, 6 Nov 2018 14:17:37 +0530 Message-Id: <1541494066-16288-3-git-send-email-sakar.arora@arm.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1541494066-16288-1-git-send-email-sakar.arora@arm.com> References: <1541494066-16288-1-git-send-email-sakar.arora@arm.com> Subject: [edk2-test][RFC PATCH 03/12] uefi-sct/SctPkg: sbbr: Add System Environment Configuration Test Cases X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 X-List-Received-Date: Tue, 06 Nov 2018 08:48:21 -0000 From: John Powell Add test cases for SBBR v1.0 requirements 3.3.1, 3.3.2, 3.3.3 and 3.3.4. Change-Id: I3801314af1ffabaa2d71cee76417c4277f5f5521 Signed-off-by: John Powell --- uefi-sct/SctPkg/CommonGenFramework.sh | 3 + uefi-sct/SctPkg/Config/Data/Category.ini | 11 +- .../Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.c | 67 +++ .../Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.h | 81 ++++ .../BlackBoxTest/SysEnvConfigBBTest.inf | 84 ++++ .../BlackBoxTest/SysEnvConfigBBTestFunction.c | 527 +++++++++++++++++++++ .../BlackBoxTest/SysEnvConfigBBTestFunction.h | 104 ++++ .../BlackBoxTest/SysEnvConfigBBTestMain.c | 157 ++++++ .../BlackBoxTest/SysEnvConfigBBTestMain.h | 96 ++++ uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc | 7 + 10 files changed, 1135 insertions(+), 2 deletions(-) create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.c create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.h create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTest.inf create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestFunction.c create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestFunction.h create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestMain.c create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestMain.h diff --git a/uefi-sct/SctPkg/CommonGenFramework.sh b/uefi-sct/SctPkg/CommonGenFramework.sh index e0f9658..c9b6ca9 100755 --- a/uefi-sct/SctPkg/CommonGenFramework.sh +++ b/uefi-sct/SctPkg/CommonGenFramework.sh @@ -361,6 +361,9 @@ then cp $ProcessorType/MiscBootServicesBBTest.efi $Framework/Test/ > NUL cp $ProcessorType/ProtocolHandlerServicesBBTest.efi $Framework/Test/ > NUL + # Tests SBBR sections 3.3.1, 3.3.2, 3.3.3, and 3.3.4 + cp $ProcessorType/SysEnvConfigBBTest.efi $Framework/Test/ > NUL + # ********************************************* # Copy ENTS binary # ********************************************* diff --git a/uefi-sct/SctPkg/Config/Data/Category.ini b/uefi-sct/SctPkg/Config/Data/Category.ini index 3e9f5e5..9a81c1d 100644 --- a/uefi-sct/SctPkg/Config/Data/Category.ini +++ b/uefi-sct/SctPkg/Config/Data/Category.ini @@ -89,8 +89,15 @@ Description = [Category Data] Revision = 0x00010000 -CategoryGuid = E9EF7553-F833-4E56-96E8-38AE679523CC -InterfaceGuid = E9EF7553-F833-4E56-96E8-38AE679523CC +CategoryGuid = D84A6430-99F5-4660-8454-6E4C896A7E51 +InterfaceGuid = 71652D04-BF38-434a-BCB8-6547D7FD8384 +Name = GenericTest\SbbrSysEnvConfig +Description = + +[Category Data] +Revision = 0x00010000 +CategoryGuid = E9EF7553-F833-4e56-96E8-38AE679523CC +InterfaceGuid = E9EF7553-F833-4e56-96E8-38AE679523CC Name = BootServicesTest Description = diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.c new file mode 100644 index 0000000..cd6a752 --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.c @@ -0,0 +1,67 @@ +/*++ + The material contained herein is not a license, either + expressly or impliedly, to any intellectual property owned + or controlled by any of the authors or developers of this + material or to any contribution thereto. The material + contained herein is provided on an "AS IS" basis and, to the + maximum extent permitted by applicable law, this information + is provided AS IS AND WITH ALL FAULTS, and the authors and + developers of this material hereby disclaim all other + warranties and conditions, either express, implied or + statutory, including, but not limited to, any (if any) + implied warranties, duties or conditions of merchantability, + of fitness for a particular purpose, of accuracy or + completeness of responses, of results, of workmanlike + effort, of lack of viruses and of lack of negligence, all + with regard to this material and any contribution thereto. + Designers must not rely on the absence or characteristics of + any features or instructions marked "reserved" or + "undefined." The Unified EFI Forum, Inc. reserves any + features or instructions so marked for future definition and + shall have no responsibility whatsoever for conflicts or + incompatibilities arising from future changes to them. ALSO, + THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR + NON-INFRINGEMENT WITH REGARD TO THE TEST SUITE AND ANY + CONTRIBUTION THERETO. + + IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THIS MATERIAL OR + ANY CONTRIBUTION THERETO BE LIABLE TO ANY OTHER PARTY FOR + THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST + PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, + CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER + UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY + WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS + DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF + THE POSSIBILITY OF SUCH DAMAGES. + + Copyright 2006 - 2016 Unified EFI, Inc. All + Rights Reserved, subject to all existing rights in all + matters included within this Test Suite, to which United + EFI, Inc. makes no claim of right. + + Copyright (c) 2016, ARM Corporation. All rights reserved.
+ +--*/ +/*++ + +Module Name: + + Guid.c + +Abstract: + + GUID assignments for test progress assertions. + +--*/ + +#include "Efi.h" +#include "Guid.h" + +EFI_GUID gSysEnvConfigAssertion001Guid = SYSENVCONFIG_ASSERTION_001_GUID; + +EFI_GUID gSysEnvConfigAssertion002Guid = SYSENVCONFIG_ASSERTION_002_GUID; + +EFI_GUID gSysEnvConfigAssertion003Guid = SYSENVCONFIG_ASSERTION_003_GUID; + +EFI_GUID gSysEnvConfigAssertion004Guid = SYSENVCONFIG_ASSERTION_004_GUID; diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.h new file mode 100644 index 0000000..8f474c4 --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/Guid.h @@ -0,0 +1,81 @@ +/*++ + The material contained herein is not a license, either + expressly or impliedly, to any intellectual property owned + or controlled by any of the authors or developers of this + material or to any contribution thereto. The material + contained herein is provided on an "AS IS" basis and, to the + maximum extent permitted by applicable law, this information + is provided AS IS AND WITH ALL FAULTS, and the authors and + developers of this material hereby disclaim all other + warranties and conditions, either express, implied or + statutory, including, but not limited to, any (if any) + implied warranties, duties or conditions of merchantability, + of fitness for a particular purpose, of accuracy or + completeness of responses, of results, of workmanlike + effort, of lack of viruses and of lack of negligence, all + with regard to this material and any contribution thereto. + Designers must not rely on the absence or characteristics of + any features or instructions marked "reserved" or + "undefined." The Unified EFI Forum, Inc. reserves any + features or instructions so marked for future definition and + shall have no responsibility whatsoever for conflicts or + incompatibilities arising from future changes to them. ALSO, + THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR + NON-INFRINGEMENT WITH REGARD TO THE TEST SUITE AND ANY + CONTRIBUTION THERETO. + + IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THIS MATERIAL OR + ANY CONTRIBUTION THERETO BE LIABLE TO ANY OTHER PARTY FOR + THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST + PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, + CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER + UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY + WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS + DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF + THE POSSIBILITY OF SUCH DAMAGES. + + Copyright 2006 - 2016 Unified EFI, Inc. All + Rights Reserved, subject to all existing rights in all + matters included within this Test Suite, to which United + EFI, Inc. makes no claim of right. + + Copyright (c) 2016, ARM Corporation. All rights reserved.
+ +--*/ +/*++ + +Module Name: + + Guid.h + +Abstract: + + Definitions of GUIDs used for test progress assertions. + +--*/ + +#ifndef _SYSENVCONFIG_GUID_H_ +#define _SYSENVCONFIG_GUID_H_ + +#define SYSENVCONFIG_ASSERTION_001_GUID \ +{0xcc5c4f70, 0xbfc9, 0x48be, {0x97, 0xf8, 0xca, 0xac, 0xfd, 0x8b, 0x97, 0x5e}} + +extern EFI_GUID gSysEnvConfigAssertion001Guid; + +#define SYSENVCONFIG_ASSERTION_002_GUID \ +{0x6e3f022e, 0x425b, 0x42cd, {0x83, 0x07, 0xb5, 0x67, 0xb9, 0xdb, 0x3d, 0x5d}} + +extern EFI_GUID gSysEnvConfigAssertion002Guid; + +#define SYSENVCONFIG_ASSERTION_003_GUID \ +{0x91d5b963, 0x1da8, 0x4c1d, {0x91, 0x3e, 0xd3, 0x4b, 0xb3, 0xa7, 0x3a, 0x1c}} + +extern EFI_GUID gSysEnvConfigAssertion003Guid; + +#define SYSENVCONFIG_ASSERTION_004_GUID \ +{0x9f0b093e, 0x7606, 0x4c94, {0xa1, 0xaa, 0x85, 0x56, 0x7f, 0xd4, 0xbf, 0x15}} + +extern EFI_GUID gSysEnvConfigAssertion004Guid; + +#endif /* _SYSENVCONFIG_GUID_H_ */ diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTest.inf b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTest.inf new file mode 100644 index 0000000..d4d610c --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTest.inf @@ -0,0 +1,84 @@ +# +# The material contained herein is not a license, either +# expressly or impliedly, to any intellectual property owned +# or controlled by any of the authors or developers of this +# material or to any contribution thereto. The material +# contained herein is provided on an "AS IS" basis and, to the +# maximum extent permitted by applicable law, this information +# is provided AS IS AND WITH ALL FAULTS, and the authors and +# developers of this material hereby disclaim all other +# warranties and conditions, either express, implied or +# statutory, including, but not limited to, any (if any) +# implied warranties, duties or conditions of merchantability, +# of fitness for a particular purpose, of accuracy or +# completeness of responses, of results, of workmanlike +# effort, of lack of viruses and of lack of negligence, all +# with regard to this material and any contribution thereto. +# Designers must not rely on the absence or characteristics of +# any features or instructions marked "reserved" or +# "undefined." The Unified EFI Forum, Inc. reserves any +# features or instructions so marked for future definition and +# shall have no responsibility whatsoever for conflicts or +# incompatibilities arising from future changes to them. ALSO, +# THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, +# QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR +# NON-INFRINGEMENT WITH REGARD TO THE TEST SUITE AND ANY +# CONTRIBUTION THERETO. +# +# IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THIS MATERIAL OR +# ANY CONTRIBUTION THERETO BE LIABLE TO ANY OTHER PARTY FOR +# THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST +# PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, +# CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER +# UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY +# WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS +# DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF +# THE POSSIBILITY OF SUCH DAMAGES. +# +# Copyright 2006 - 2016 Unified EFI, Inc. All +# Rights Reserved, subject to all existing rights in all +# matters included within this Test Suite, to which United +# EFI, Inc. makes no claim of right. +# +# Copyright (c) 2016, ARM. All rights reserved.
+# +# +#/*++ +# +# Module Name: +# +# SysEnvConfigBBTest.inf +# +# Abstract: +# +# Component description file for SBBR system environment configuration tests. +# +#--*/ + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = SysEnvConfigBBTest + FILE_GUID = 96251323-e34e-484b-b60c-6c66de30ccd6 + MODULE_TYPE = UEFI_DRIVER + VERSION_STRING = 1.0 + ENTRY_POINT = InitializeBBTestSysEnvConfig + +[Sources.common] + Guid.c + SysEnvConfigBBTestFunction.c + SysEnvConfigBBTestMain.c + +[Packages] + ArmPkg/ArmPkg.dec + MdePkg/MdePkg.dec + SctPkg/SctPkg.dec + SctPkg/UEFI/UEFI.dec + +[LibraryClasses] + ArmLib + EfiTestLib + SctLib + UefiDriverEntryPoint + +[Protocols] + gBlackBoxEfiBlockIoProtocolGuid \ No newline at end of file diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestFunction.c new file mode 100644 index 0000000..d0dba1e --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestFunction.c @@ -0,0 +1,527 @@ +/*++ + The material contained herein is not a license, either + expressly or impliedly, to any intellectual property owned + or controlled by any of the authors or developers of this + material or to any contribution thereto. The material + contained herein is provided on an "AS IS" basis and, to the + maximum extent permitted by applicable law, this information + is provided AS IS AND WITH ALL FAULTS, and the authors and + developers of this material hereby disclaim all other + warranties and conditions, either express, implied or + statutory, including, but not limited to, any (if any) + implied warranties, duties or conditions of merchantability, + of fitness for a particular purpose, of accuracy or + completeness of responses, of results, of workmanlike + effort, of lack of viruses and of lack of negligence, all + with regard to this material and any contribution thereto. + Designers must not rely on the absence or characteristics of + any features or instructions marked "reserved" or + "undefined." The Unified EFI Forum, Inc. reserves any + features or instructions so marked for future definition and + shall have no responsibility whatsoever for conflicts or + incompatibilities arising from future changes to them. ALSO, + THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR + NON-INFRINGEMENT WITH REGARD TO THE TEST SUITE AND ANY + CONTRIBUTION THERETO. + + IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THIS MATERIAL OR + ANY CONTRIBUTION THERETO BE LIABLE TO ANY OTHER PARTY FOR + THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST + PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, + CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER + UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY + WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS + DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF + THE POSSIBILITY OF SUCH DAMAGES. + + Copyright 2006 - 2016 Unified EFI, Inc. All + Rights Reserved, subject to all existing rights in all + matters included within this Test Suite, to which United + EFI, Inc. makes no claim of right. + + Copyright (c) 2006, ARM. All rights reserved.
+ +--*/ +/*++ + +Module Name: + + SysEnvConfigBBTestFunction.c + +Abstract: + + Test case definitions for SysEnvConfig tests. + +--*/ + +#include +#include "Guid.h" +#include +#include "SctLib.h" +#include "SysEnvConfigBBTestFunction.h" +#include "SysEnvConfigBBTestMain.h" +#include +#include +#include +#include + +/** + * Entrypoint for Boot Exception Level Test. + * @param This a pointer of EFI_BB_TEST_PROTOCOL. + * @param ClientInterface a pointer to the interface to be tested. + * @param TestLevel test "thoroughness" control. + * @param SupportHandle a handle containing protocols required. + * @return EFI_SUCCESS Finish the test successfully. + */ + +// +// SBBR 3.3.1 +// + +EFI_STATUS +BBTestBootExcLevelTest ( + 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; + EFI_TEST_ASSERTION AssertionType; + UINTN CurrentEL; + + // + // Get the Standard Library Interface + // + Status = gtBS->HandleProtocol ( + SupportHandle, + &gEfiStandardTestLibraryGuid, + (VOID **) &StandardLib + ); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Reading CurrentEL register into ExceptionLevel register variable and checking its value. + // + CurrentEL = ArmReadCurrentEL(); + + switch(CurrentEL){ + case AARCH64_EL1: + AssertionType = EFI_TEST_ASSERTION_PASSED; + break; + case AARCH64_EL2: + AssertionType = EFI_TEST_ASSERTION_PASSED; + break; + case AARCH64_EL3: + AssertionType = EFI_TEST_ASSERTION_FAILED; + break; + default: + StandardLib->RecordAssertion ( + StandardLib, + EFI_TEST_ASSERTION_FAILED, + gTestGenericFailureGuid, + L"Unrecognized CurrentEL Value", + L"%a:%d:CurrentEL=0x%X", + __FILE__, + (UINTN)__LINE__, + CurrentEL + ); + return EFI_UNSUPPORTED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gSysEnvConfigAssertion001Guid, + L"TestBootExcLevel", + L"%a:%d:CurrentEL=0x%X", + __FILE__, + __LINE__, + CurrentEL + ); + + return EFI_SUCCESS; +} + +/** + * Entrypoint for Memory Address Alignment Test. + * @param This a pointer of EFI_BB_TEST_PROTOCOL. + * @param ClientInterface a pointer to the interface to be tested. + * @param TestLevel test "thoroughness" control. + * @param SupportHandle a handle containing protocols required. + * @return EFI_SUCCESS Finish the test successfully. + */ + +// +// SBBR 3.3.2 +// + +EFI_STATUS +BBTestMemAddrAlignmentTest ( + 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; + EFI_TEST_ASSERTION AssertionType; + UINT32 Sctlr; + + // + // Get the Standard Library Interface + // + Status = gtBS->HandleProtocol ( + SupportHandle, + &gEfiStandardTestLibraryGuid, + (VOID **) &StandardLib + ); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Reading SCTLR for current exception level + // + Sctlr = ArmReadSctlr(); + + if (Sctlr & SCTLR_A_MASK) + { + AssertionType = EFI_TEST_ASSERTION_FAILED; + } + else + { + AssertionType = EFI_TEST_ASSERTION_PASSED; + } + + StandardLib->RecordAssertion ( + StandardLib, + AssertionType, + gSysEnvConfigAssertion002Guid, + L"TestMemAddrAlignment", + L"%a:%d:SCTLR.A=%d", + __FILE__, + __LINE__, + (Sctlr & SCTLR_A_MASK) >> SCTLR_A_SHIFT + ); + + return EFI_SUCCESS; +} + +/** + * Entrypoint for Operating System Boot Disk Partition Test. + * @param This a pointer of EFI_BB_TEST_PROTOCOL. + * @param ClientInterface a pointer to the interface to be tested. + * @param TestLevel test "thoroughness" control. + * @param SupportHandle a handle containing protocols required. + * @return EFI_SUCCESS Finish the test successfully. + */ + +// +// SBBR 3.3.3 +// + +EFI_STATUS +BBTestOsDiskFormatTest ( + 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; + EFI_TEST_ASSERTION AssertionType; + INTN iStatus; + UINTN NumberOfHandles; + EFI_HANDLE *HandleBuffer; + EFI_BLOCK_IO_PROTOCOL *BlockIo; + UINT8 *BlockBuffer; + EFI_GUID PartitionTypeGuid; + UINT32 GptPartitionsInThisLbaCount; + EFI_LBA PartitionEntryLba; + UINT32 NumberOfPartitionEntries; + UINT32 SizeOfPartitionEntry; + UINT32 PartitionEntriesPerLba; + UINT32 HandleCount; + UINT32 GptPartitionEntryCount; + EFI_PARTITION_TABLE_HEADER *GptTableHeader; + EFI_PARTITION_ENTRY *GptPartitionEntry; + UINT8 GptSignature[] = GPT_SIGNATURE; + EFI_GUID GptEfiPartitionGuid = GPT_EFI_PARTITION_GUID; + + // + // Get the Standard Library Interface + // + Status = gtBS->HandleProtocol ( + SupportHandle, + &gEfiStandardTestLibraryGuid, + (VOID **) &StandardLib + ); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Get list of all handles that support BlockIO. + // + Status = gBS->LocateHandleBuffer ( + ByProtocol, + &gBlackBoxEfiBlockIoProtocolGuid, + NULL, + &NumberOfHandles, + &HandleBuffer + ); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Checking each disk device to see if it is bootable + // + HandleCount = 0; + while (HandleCount < NumberOfHandles) { + + // + // Creating BlockIo device for one of the handles we found. + // + Status = gBS->OpenProtocol ( + HandleBuffer[HandleCount], + &gBlackBoxEfiBlockIoProtocolGuid, + (void *)&BlockIo, + gImageHandle, + NULL, + EFI_OPEN_PROTOCOL_GET_PROTOCOL + ); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Allocating memory to read data into + // + Status = gBS->AllocatePool ( + EfiBootServicesData, + BlockIo->Media->BlockSize, + (void **)&BlockBuffer + ); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Reading block that should contain GPT header. + // + Status = BlockIo->ReadBlocks ( + BlockIo, + BlockIo->Media->MediaId, + GPT_HEADER_LBA, + BlockIo->Media->BlockSize, + (VOID*)BlockBuffer + ); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Checking if block is a GPT header. + // + GptTableHeader = (EFI_PARTITION_TABLE_HEADER *)BlockBuffer; + iStatus = SctCompareMem ( + (void *)&GptTableHeader->Header.Signature, + (void *)GptSignature, + GPT_SIGNATURE_SIZE + ); + if (iStatus == 0) { + + // + // Block contains a GPT header, so now we need to find an EFI partition. + // + PartitionEntryLba = GptTableHeader->PartitionEntryLBA; + NumberOfPartitionEntries = GptTableHeader->NumberOfPartitionEntries; + SizeOfPartitionEntry = GptTableHeader->SizeOfPartitionEntry; + + // + // Loops through LBAs until all partition entries have been searched. + // + GptPartitionEntryCount = 0; + PartitionEntriesPerLba = BlockIo->Media->BlockSize / SizeOfPartitionEntry; + while (GptPartitionEntryCount < NumberOfPartitionEntries) { + + // + // Reading LBA of partition entry. + // + Status = BlockIo->ReadBlocks ( + BlockIo, + BlockIo->Media->MediaId, + PartitionEntryLba, + BlockIo->Media->BlockSize, + (VOID *)BlockBuffer + ); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Loops through partition entries in a single LBA + // + GptPartitionsInThisLbaCount = 0; + while ( (GptPartitionsInThisLbaCount < PartitionEntriesPerLba) \ + && (GptPartitionEntryCount < NumberOfPartitionEntries) \ + ) { + + GptPartitionEntry = (EFI_PARTITION_ENTRY *)&BlockBuffer[(GptPartitionEntryCount % PartitionEntriesPerLba) * SizeOfPartitionEntry]; + + // + // Checking partition type GUID against EFI partition type GUID. + // + CopyGuid ( + &PartitionTypeGuid, + &GptPartitionEntry->PartitionTypeGUID + ); + + iStatus = SctCompareGuid ( + (void *)&PartitionTypeGuid, + (void *)&GptEfiPartitionGuid + ); + if (iStatus == 0) { + StandardLib->RecordAssertion ( + StandardLib, + EFI_TEST_ASSERTION_PASSED, + gSysEnvConfigAssertion003Guid, + L"TestOsDiskFormat", + L"%a:%d:Valid Boot Disk Found", + __FILE__, + (UINTN)__LINE__ + ); + gBS->FreePool ((void *)BlockBuffer); + Status = gBS->CloseProtocol ( + HandleBuffer[HandleCount], + &gBlackBoxEfiBlockIoProtocolGuid, + gImageHandle, + NULL + ); + return EFI_SUCCESS; + } + + GptPartitionEntryCount++; + GptPartitionsInThisLbaCount++; + } + + PartitionEntryLba++; + } + } + + gBS->FreePool ((void *)BlockBuffer); + + // + // Closing the protocol + // + Status = gBS->CloseProtocol ( + HandleBuffer[HandleCount], + &gBlackBoxEfiBlockIoProtocolGuid, + gImageHandle, + NULL + ); + + HandleCount++; + } + + StandardLib->RecordAssertion ( + StandardLib, + EFI_TEST_ASSERTION_FAILED, + gSysEnvConfigAssertion003Guid, + L"TestOsDiskFormat", + L"%a:%d:No Valid Boot Disk Found", + __FILE__, + (UINTN)__LINE__ + ); + + return EFI_SUCCESS; +} + +/** + * Entrypoint for EBC interface check. + * @param This a pointer of EFI_BB_TEST_PROTOCOL. + * @param ClientInterface a pointer to the interface to be tested. + * @param TestLevel test "thoroughness" control. + * @param SupportHandle a handle containing protocols required. + * @return EFI_SUCCESS Finish the test successfully. + */ + +// +// SBBR 3.3.4 +// + +EFI_STATUS +BBTestEbcInterfacePresentTest ( + 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; + EFI_HANDLE *HandleBuffer; + UINTN NumberOfHandles; + EFI_GUID EbcProtocolGuid = EFI_EBC_PROTOCOL_GUID; + + // + // Get the Standard Library Interface + // + Status = gtBS->HandleProtocol ( + SupportHandle, + &gEfiStandardTestLibraryGuid, + (VOID **) &StandardLib + ); + if (EFI_ERROR (Status)) { + return Status; + } + + // + // Attempting to locate EBC protocol + // + Status = gBS->LocateHandleBuffer ( + ByProtocol, + &EbcProtocolGuid, + NULL, + &NumberOfHandles, + &HandleBuffer + ); + if ( (Status == EFI_NOT_FOUND) && (NumberOfHandles == 0) ) { + StandardLib->RecordAssertion ( + StandardLib, + EFI_TEST_ASSERTION_FAILED, + gSysEnvConfigAssertion004Guid, + L"SBBRTestEbcInterfacePresent", + L"%a:%d:EBC Interpreter Not Found", + __FILE__, + (UINTN)__LINE__ + ); + } + else if( (Status == EFI_SUCCESS) && (NumberOfHandles > 0) ) { + StandardLib->RecordAssertion ( + StandardLib, + EFI_TEST_ASSERTION_PASSED, + gSysEnvConfigAssertion004Guid, + L"SBBRTestEbcInterfacePresent", + L"%a:%d:EBC Interpreter Found", + __FILE__, + (UINTN)__LINE__ + ); + } + else { + return Status; + } + + return EFI_SUCCESS; +} \ No newline at end of file diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestFunction.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestFunction.h new file mode 100644 index 0000000..b42fae0 --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestFunction.h @@ -0,0 +1,104 @@ +/*++ + The material contained herein is not a license, either + expressly or impliedly, to any intellectual property owned + or controlled by any of the authors or developers of this + material or to any contribution thereto. The material + contained herein is provided on an "AS IS" basis and, to the + maximum extent permitted by applicable law, this information + is provided AS IS AND WITH ALL FAULTS, and the authors and + developers of this material hereby disclaim all other + warranties and conditions, either express, implied or + statutory, including, but not limited to, any (if any) + implied warranties, duties or conditions of merchantability, + of fitness for a particular purpose, of accuracy or + completeness of responses, of results, of workmanlike + effort, of lack of viruses and of lack of negligence, all + with regard to this material and any contribution thereto. + Designers must not rely on the absence or characteristics of + any features or instructions marked "reserved" or + "undefined." The Unified EFI Forum, Inc. reserves any + features or instructions so marked for future definition and + shall have no responsibility whatsoever for conflicts or + incompatibilities arising from future changes to them. ALSO, + THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR + NON-INFRINGEMENT WITH REGARD TO THE TEST SUITE AND ANY + CONTRIBUTION THERETO. + + IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THIS MATERIAL OR + ANY CONTRIBUTION THERETO BE LIABLE TO ANY OTHER PARTY FOR + THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST + PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, + CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER + UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY + WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS + DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF + THE POSSIBILITY OF SUCH DAMAGES. + + Copyright 2006 - 2016 Unified EFI, Inc. All + Rights Reserved, subject to all existing rights in all + matters included within this Test Suite, to which United + EFI, Inc. makes no claim of right. + + Copyright (c) 2006, ARM. All rights reserved.
+ +--*/ +/*++ + +Module Name: + + SysEnvConfigBBTestFunction.h + +Abstract: + + Contains definitions and prototypes used in the test functions. + +--*/ + +#ifndef _SYSENVCONFIG_BB_TEST_FUNCTION_H_ +#define _SYSENVCONFIG_BB_TEST_FUNCTION_H_ + +#include + +#define SCTLR_A_MASK 0x2 +#define SCTLR_A_SHIFT 1 + +#define GPT_HEADER_LBA 1 +#define GPT_SIGNATURE_SIZE 8 +#define GPT_SIGNATURE "EFI PART" +#define GPT_EFI_PARTITION_GUID {0xC12A7328, 0xF81F, 0x11D2, {0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B}} +#define GPT_STARTING_ENTRY_LBA_OFFSET 72 + +EFI_STATUS +BBTestBootExcLevelTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ); + +EFI_STATUS +BBTestMemAddrAlignmentTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ); + +EFI_STATUS +BBTestOsDiskFormatTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ); + +EFI_STATUS +BBTestEbcInterfacePresentTest ( + IN EFI_BB_TEST_PROTOCOL *This, + IN VOID *ClientInterface, + IN EFI_TEST_LEVEL TestLevel, + IN EFI_HANDLE SupportHandle + ); + +#endif /* _SYSENVCONFIG_BB_TEST_FUNCTION_H_ */ \ No newline at end of file diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestMain.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestMain.c new file mode 100644 index 0000000..9ed7cf8 --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestMain.c @@ -0,0 +1,157 @@ +/*++ + The material contained herein is not a license, either + expressly or impliedly, to any intellectual property owned + or controlled by any of the authors or developers of this + material or to any contribution thereto. The material + contained herein is provided on an "AS IS" basis and, to the + maximum extent permitted by applicable law, this information + is provided AS IS AND WITH ALL FAULTS, and the authors and + developers of this material hereby disclaim all other + warranties and conditions, either express, implied or + statutory, including, but not limited to, any (if any) + implied warranties, duties or conditions of merchantability, + of fitness for a particular purpose, of accuracy or + completeness of responses, of results, of workmanlike + effort, of lack of viruses and of lack of negligence, all + with regard to this material and any contribution thereto. + Designers must not rely on the absence or characteristics of + any features or instructions marked "reserved" or + "undefined." The Unified EFI Forum, Inc. reserves any + features or instructions so marked for future definition and + shall have no responsibility whatsoever for conflicts or + incompatibilities arising from future changes to them. ALSO, + THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR + NON-INFRINGEMENT WITH REGARD TO THE TEST SUITE AND ANY + CONTRIBUTION THERETO. + + IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THIS MATERIAL OR + ANY CONTRIBUTION THERETO BE LIABLE TO ANY OTHER PARTY FOR + THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST + PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, + CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER + UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY + WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS + DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF + THE POSSIBILITY OF SUCH DAMAGES. + + Copyright 2006 - 2016 Unified EFI, Inc. All + Rights Reserved, subject to all existing rights in all + matters included within this Test Suite, to which United + EFI, Inc. makes no claim of right. + + Copyright (c) 2016, ARM Corporation. All rights reserved.
+ +--*/ +/*++ + +Module Name: + + SysEnvConfigBBTestMain.c + +Abstract: + + Test driver for SBBR system environment configuration tests. + +--*/ + +#include "SctLib.h" +#include "SysEnvConfigBBTestFunction.h" +#include "SysEnvConfigBBTestMain.h" + +EFI_BB_TEST_PROTOCOL_FIELD gBBTestProtocolField = { + SYSENVCONFIG_TEST_REVISION, + SYSENVCONFIG_TEST_GUID, + L"SBBR UEFI System Environment and Configuration Tests", + L"Tests various processor configuration parameters to make sure they conform to ARM SBBR." +}; + +EFI_GUID gSupportProtocolGuid[2] = { + EFI_STANDARD_TEST_LIBRARY_GUID, + EFI_NULL_GUID +}; + +EFI_BB_TEST_ENTRY_FIELD gBBTestEntryField[] = { + { + SYSENVCONFIG_BOOT_EXC_LEVEL_GUID, + L"BootExcLevel", + L"Check the execution level of the UEFI boot environment.", + EFI_TEST_LEVEL_DEFAULT, + gSupportProtocolGuid, + EFI_TEST_CASE_AUTO, + BBTestBootExcLevelTest + }, + { + SYSENVCONFIG_MEM_ADDR_ALIGNMENT_GUID, + L"MemAddrAlignment", + L"Checking that memory address alignment is not enforced.", + EFI_TEST_LEVEL_DEFAULT, + gSupportProtocolGuid, + EFI_TEST_CASE_AUTO, + BBTestMemAddrAlignmentTest + }, + { + SYSENVCONFIG_OS_DISK_FORMAT_GUID, + L"OsDiskFormat", + L"Checking that the operating system disk contains a GPT partition table with an EFI partition.", + EFI_TEST_LEVEL_DEFAULT, + gSupportProtocolGuid, + EFI_TEST_CASE_AUTO, + BBTestOsDiskFormatTest + }, + { + SYSENVCONFIG_EBC_INTERPRETER_PRESENT_GUID, + L"EbcInterfacePresent", + L"Checking that an EBC interpreter is present in the system.", + EFI_TEST_LEVEL_DEFAULT, + gSupportProtocolGuid, + EFI_TEST_CASE_AUTO, + BBTestEbcInterfacePresentTest + }, + EFI_NULL_GUID +}; + +EFI_BB_TEST_PROTOCOL *gBBTestProtocolInterface; + +/** + * The driver's Unload function + * @param ImageHandle The test driver image handle + * @return EFI_SUCCESS Indicates the interface was Uninstalled +*/ +EFI_STATUS +BBTestSysEnvConfigUnload ( + IN EFI_HANDLE ImageHandle + ) +{ + return EfiUninstallAndFreeBBTestInterface ( + ImageHandle, + gBBTestProtocolInterface + ); +} + +/** + * Creates/installs the BlackBox Interface and eminating Entry Point + * node list. + * @param ImageHandle The test driver image handle + * @param SystemTable Pointer to System Table + * @return EFI_SUCCESS Indicates the interface was installed + * @return EFI_OUT_OF_RESOURCES Indicates space for the new handle could not be allocated + * @return EFI_INVALID_PARAMETER One of the parameters has an invalid value. + */ +EFI_STATUS +InitializeBBTestSysEnvConfig ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + + EfiInitializeTestLib (ImageHandle, SystemTable); + + return EfiInitAndInstallBBTestInterface ( + &ImageHandle, + &gBBTestProtocolField, + gBBTestEntryField, + BBTestSysEnvConfigUnload, + &gBBTestProtocolInterface + ); +} \ No newline at end of file diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestMain.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestMain.h new file mode 100644 index 0000000..151444c --- /dev/null +++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTestMain.h @@ -0,0 +1,96 @@ +/*++ + The material contained herein is not a license, either + expressly or impliedly, to any intellectual property owned + or controlled by any of the authors or developers of this + material or to any contribution thereto. The material + contained herein is provided on an "AS IS" basis and, to the + maximum extent permitted by applicable law, this information + is provided AS IS AND WITH ALL FAULTS, and the authors and + developers of this material hereby disclaim all other + warranties and conditions, either express, implied or + statutory, including, but not limited to, any (if any) + implied warranties, duties or conditions of merchantability, + of fitness for a particular purpose, of accuracy or + completeness of responses, of results, of workmanlike + effort, of lack of viruses and of lack of negligence, all + with regard to this material and any contribution thereto. + Designers must not rely on the absence or characteristics of + any features or instructions marked "reserved" or + "undefined." The Unified EFI Forum, Inc. reserves any + features or instructions so marked for future definition and + shall have no responsibility whatsoever for conflicts or + incompatibilities arising from future changes to them. ALSO, + THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT, + QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR + NON-INFRINGEMENT WITH REGARD TO THE TEST SUITE AND ANY + CONTRIBUTION THERETO. + + IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THIS MATERIAL OR + ANY CONTRIBUTION THERETO BE LIABLE TO ANY OTHER PARTY FOR + THE COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST + PROFITS, LOSS OF USE, LOSS OF DATA, OR ANY INCIDENTAL, + CONSEQUENTIAL, DIRECT, INDIRECT, OR SPECIAL DAMAGES WHETHER + UNDER CONTRACT, TORT, WARRANTY, OR OTHERWISE, ARISING IN ANY + WAY OUT OF THIS OR ANY OTHER AGREEMENT RELATING TO THIS + DOCUMENT, WHETHER OR NOT SUCH PARTY HAD ADVANCE NOTICE OF + THE POSSIBILITY OF SUCH DAMAGES. + + Copyright 2006 - 2016 Unified EFI, Inc. All + Rights Reserved, subject to all existing rights in all + matters included within this Test Suite, to which United + EFI, Inc. makes no claim of right. + + Copyright (c) 2016, ARM Corporation. All rights reserved.
+ +--*/ +/*++ + +Module Name: + + SysEnvConfigBBTestMain.h + +Abstract: + + Contains definitions for test information and test GUIDs. + +--*/ + +#ifndef _SYSENVCONFIG_TEST_MAIN_H_ +#define _SYSENVCONFIG_TEST_MAIN_H_ + +#include + +#define SYSENVCONFIG_TEST_REVISION 0x00010000 + +#define SYSENVCONFIG_TEST_GUID \ + {0xd84a6430, 0x99f5, 0x4660, {0x84, 0x54, 0x6e, 0x4c, 0x89, 0x6a, 0x7e, 0x51}} + +EFI_STATUS +InitializeBBTestSysEnvConfig ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ); + +EFI_STATUS +BBTestBootSysEnvConfig ( + IN EFI_HANDLE ImageHandle + ); + +// +// Entry GUIDs +// + +#define SYSENVCONFIG_BOOT_EXC_LEVEL_GUID \ + {0x591cb467, 0x530b, 0x4b16, {0xb0, 0x90, 0xc6, 0xce, 0xfa, 0xfc, 0xc1, 0x56}} + +#define SYSENVCONFIG_MEM_ADDR_ALIGNMENT_GUID \ + {0xe24959d0, 0x9539, 0x4c7b, {0xbd, 0xbc, 0x12, 0x2a, 0xc5, 0xe9, 0xef, 0xd8}} + +#define SYSENVCONFIG_OS_DISK_FORMAT_GUID \ + {0x78f530dd, 0xfe16, 0x4daf, {0xa2, 0x01, 0xbc, 0xb9, 0x37, 0x15, 0x03, 0xa2}} + +#define SYSENVCONFIG_EBC_INTERPRETER_PRESENT_GUID \ + {0xff469a32, 0x6d0a, 0x4a99, {0x8b, 0x1e, 0xd1, 0x37, 0x50, 0x34, 0x08, 0xb6}} + + +#endif /* _SYSENVCONFIG_TEST_MAIN_H_ */ diff --git a/uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc b/uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc index 7b5b4b0..3a637e2 100644 --- a/uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc +++ b/uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc @@ -142,6 +142,7 @@ [LibraryClasses.AARCH64] NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf + ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf ############################################################################### # @@ -240,6 +241,12 @@ SctPkg/TestCase/UEFI/EFI/BootServices/ProtocolHandlerServices/BlackBoxTest/Proto # End of Boot Services Tests - SBBR v1.0 Appendix A # +# UEFI System Environment and Configuration Tests - SBBR v1.0 3.3 +# +SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTest.inf +#End of UEFI System Environment and Configuration Tests - SBBR v1.0 3.3 + +# # Dependency files # -- 2.7.4