public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Sakar Arora <sakar.arora@arm.com>
To: edk2-devel@lists.01.org
Cc: Supreeth.Venkatesh@arm.com, prasanth.pulla@arm.com
Subject: [edk2-test][RFC PATCH 07/12] uefi-sct/SctPkg: sbbr: Add test cases for SBBR v1.0 boot services
Date: Tue,  6 Nov 2018 14:17:41 +0530	[thread overview]
Message-ID: <1541494066-16288-7-git-send-email-sakar.arora@arm.com> (raw)
In-Reply-To: <1541494066-16288-1-git-send-email-sakar.arora@arm.com>

From: John Powell <john.powell@arm.com>

Tests SBBR requirements 3.4.1 and 3.4.4.

Change-Id: I0dd625851db65d04d2a7572a2d6838951c8f7c67
Signed-off-by: John Powell <john.powell@arm.com>
---
 uefi-sct/SctPkg/CommonGenFramework.sh              |   3 +
 uefi-sct/SctPkg/Config/Data/Category.ini           |  11 +-
 .../SbbrBootServices/BlackBoxTest/Guid.c           |  65 +++
 .../SbbrBootServices/BlackBoxTest/Guid.h           |  76 +++
 .../BlackBoxTest/SbbrBootServicesBBTest.inf        |  85 ++++
 .../BlackBoxTest/SbbrBootServicesBBTestFunction.c  | 549 +++++++++++++++++++++
 .../BlackBoxTest/SbbrBootServicesBBTestFunction.h  |  85 ++++
 .../BlackBoxTest/SbbrBootServicesBBTestMain.c      | 149 ++++++
 .../BlackBoxTest/SbbrBootServicesBBTestMain.h      |  99 ++++
 uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc                  |   7 +
 10 files changed, 1127 insertions(+), 2 deletions(-)
 create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/Guid.c
 create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/Guid.h
 create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTest.inf
 create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestFunction.c
 create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestFunction.h
 create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestMain.c
 create mode 100644 uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestMain.h

diff --git a/uefi-sct/SctPkg/CommonGenFramework.sh b/uefi-sct/SctPkg/CommonGenFramework.sh
index aecd21b..ab35c5a 100755
--- a/uefi-sct/SctPkg/CommonGenFramework.sh
+++ b/uefi-sct/SctPkg/CommonGenFramework.sh
@@ -364,6 +364,9 @@ then
     # Tests SBBR sections 3.3.1, 3.3.2, 3.3.3, and 3.3.4
     cp $ProcessorType/SysEnvConfigBBTest.efi                   $Framework/Test/ > NUL
 
+    # UEFI Boot Services - SBBR v1.0 3.4
+    cp $ProcessorType/SbbrBootServicesBBTest.efi               $Framework/Test/ > NUL
+
     # Runtime Services Tests - SBBR v1.0 Appendix B
     cp $ProcessorType/VariableServicesBBTest.efi               $Framework/Test/ > NUL
     cp $ProcessorType/TimeServicesBBTest.efi                   $Framework/Test/ > NUL
diff --git a/uefi-sct/SctPkg/Config/Data/Category.ini b/uefi-sct/SctPkg/Config/Data/Category.ini
index 9576971..17ca639 100644
--- a/uefi-sct/SctPkg/Config/Data/Category.ini
+++ b/uefi-sct/SctPkg/Config/Data/Category.ini
@@ -145,8 +145,15 @@ Description   =
 
 [Category Data]
 Revision      = 0x00010000
-CategoryGuid  = AFF115FB-387B-4C18-8C41-6AFC7F03BB90
-InterfaceGuid = AFF115FB-387B-4C18-8C41-6AFC7F03BB90
+CategoryGuid  = 8dafd7a7-44d0-4cf4-9d28-9f87080fc091
+InterfaceGuid = E9EF7553-F833-4E56-96E8-38AE679523CC
+Name          = BootServicesTest\SbbrBootServices
+Description   = Tests SBBR boot services requirements.
+
+[Category Data]
+Revision      = 0x00010000
+CategoryGuid  = AFF115FB-387B-4c18-8C41-6AFC7F03BB90
+InterfaceGuid = AFF115FB-387B-4c18-8C41-6AFC7F03BB90
 Name          = RuntimeServicesTest
 Description   =
 
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/Guid.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/Guid.c
new file mode 100644
index 0000000..a0224a9
--- /dev/null
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/Guid.c
@@ -0,0 +1,65 @@
+/*++
+  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 Ltd. All rights reserved.
+
+--*/
+/*++
+
+Module Name:
+
+  Guid.c
+
+Abstract:
+
+  Global variable assignments for GUIDs used in test assertions.
+
+--*/
+
+#include "Efi.h"
+#include "Guid.h"
+
+EFI_GUID gSbbrBootServicesAssertion001Guid = SBBRBOOTSERVICES_ASSERTION_001_GUID;
+
+EFI_GUID gSbbrBootServicesAssertion002Guid = SBBRBOOTSERVICES_ASSERTION_002_GUID;
+
+EFI_GUID gSbbrBootServicesAssertion003Guid = SBBRBOOTSERVICES_ASSERTION_003_GUID;
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/Guid.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/Guid.h
new file mode 100644
index 0000000..9f7d5a9
--- /dev/null
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/Guid.h
@@ -0,0 +1,76 @@
+/*++
+  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 Ltd. All rights reserved.
+
+--*/
+/*++
+
+Module Name:
+
+  Guid.h
+
+Abstract:
+
+  Definitions for GUIDs used in test assertions.
+
+--*/
+
+#ifndef _SBBRBOOTSERVICES_GUID_H_
+#define _SBBRBOOTSERVICES_GUID_H_
+
+#define SBBRBOOTSERVICES_ASSERTION_001_GUID \
+{ 0x58a44f17, 0x760e, 0x478b, {0xba, 0xef, 0xe2, 0x0b, 0xfb, 0xcd, 0x74, 0x57 }}
+
+extern EFI_GUID gSbbrBootServicesAssertion001Guid;
+
+#define SBBRBOOTSERVICES_ASSERTION_002_GUID \
+{ 0x1e4cdbab, 0x9727, 0x4f71, {0x88, 0x25, 0xb4, 0xb1, 0x6a, 0x58, 0xcf, 0x84 }}
+
+extern EFI_GUID gSbbrBootServicesAssertion002Guid;
+
+#define SBBRBOOTSERVICES_ASSERTION_003_GUID \
+{ 0x2a326d84, 0x5e23, 0x40e1, {0xb8, 0xae, 0xf7, 0xa9, 0xce, 0x18, 0xf9, 0xb5 }}
+
+extern EFI_GUID gSbbrBootServicesAssertion003Guid;
+
+#endif /* _SBBRBOOTSERVICES_GUID_H_ */
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTest.inf b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTest.inf
new file mode 100644
index 0000000..9abf4e2
--- /dev/null
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTest.inf
@@ -0,0 +1,85 @@
+#
+# 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 Ltd. All rights reserved.
+#
+#
+#/*++
+#
+# Module Name:
+#
+#   SbbrBootServicesBBTest.inf
+#
+# Abstract:
+#
+#   Component description file for SbbrBootServices tests.
+#
+#--*/
+
+[Defines]
+  INF_VERSION          = 0x00010005
+  BASE_NAME            = SbbrBootServicesBBTest
+  FILE_GUID            = 9fa74174-eacf-468a-adca-f23a6ee190d2
+  MODULE_TYPE          = UEFI_DRIVER
+  VERSION_STRING       = 1.0
+  ENTRY_POINT          = InitializeBBTestSbbrBootServices
+
+[Sources.common]
+  SbbrBootServicesBBTestMain.c
+  SbbrBootServicesBBTestFunction.c
+  Guid.c
+
+[Packages]
+  MdePkg/MdePkg.dec
+  SctPkg/SctPkg.dec
+  SctPkg/UEFI/UEFI.dec
+
+[LibraryClasses]
+  UefiDriverEntryPoint
+  SctLib
+  EfiTestLib
+
+[Protocols]
+
+[Guids]
+  gEfiSmbios3TableGuid
+  gEfiAcpi20TableGuid
\ No newline at end of file
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestFunction.c
new file mode 100644
index 0000000..fb50702
--- /dev/null
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestFunction.c
@@ -0,0 +1,549 @@
+/*++
+  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 Ltd. All rights reserved.
+
+--*/
+/*++
+
+Module Name:
+
+  SbbrBootServicesBBTestFunction.c
+
+Abstract:
+
+  Test case function definitions for SbbrBootServices.
+
+--*/
+
+#include "Guid.h"
+#include <IndustryStandard/Acpi20.h>
+#include <IndustryStandard/SmBios.h>
+#include "SbbrBootServicesBBTestMain.h"
+#include "SbbrBootServicesBBTestFunction.h"
+#include "SctLib.h"
+
+/* Helper Functions */
+
+STATIC
+UINT8
+SbbrBootServicesByteChecksum (
+  IN VOID                 *Data,
+  IN UINT32               Length
+  )
+{
+  UINT32 i;
+  UINT8 sum = 0;
+  UINT8 *Bytes = (UINT8 *)Data;
+
+  for (i = 0; i < Length; i++){
+    sum = sum + Bytes[i];
+  }
+
+  return sum;
+}
+
+STATIC
+UINT32
+SbbrBootServicesIsRam (
+  EFI_MEMORY_DESCRIPTOR *MemoryMapEntry
+  )
+{
+  switch (MemoryMapEntry->Type)
+  {
+    case EfiLoaderCode:
+    case EfiLoaderData:
+    case EfiBootServicesCode:
+    case EfiBootServicesData:
+    case EfiRuntimeServicesCode:
+    case EfiRuntimeServicesData:
+    case EfiConventionalMemory:
+      return TRUE;
+    default:
+      return FALSE;
+  }
+}
+
+/**
+ *  Entrypoint for MemoryMap 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.
+ */
+
+EFI_STATUS
+BBTestMemoryMapTest (
+  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;
+  UINTN                               MemoryMapSize;
+  VOID                                *MemoryMap;
+  EFI_MEMORY_DESCRIPTOR               *MemoryMapDescriptor;
+  UINTN                               MapKey;
+  UINTN                               DescriptorSize;
+  UINT32                              DescriptorVersion;
+  UINT32                              i;
+  UINT32                              error;
+
+  //
+  // Get the Standard Library Interface
+  //
+  Status = gtBS->HandleProtocol (
+              SupportHandle,
+              &gEfiStandardTestLibraryGuid,
+              &StandardLib
+              );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  //
+  // Getting memory map
+  //
+  MemoryMapSize = 0;
+  Status = gtBS->GetMemoryMap (
+              &MemoryMapSize,
+              MemoryMap,
+              &MapKey,
+              &DescriptorSize,
+              &DescriptorVersion
+              );
+  if (Status != EFI_BUFFER_TOO_SMALL){
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion001Guid,
+                L"MemoryMap",
+                L"%a:%d - MemoryMap Not Found",
+                __FILE__,
+                __LINE__
+                );
+    return EFI_SUCCESS;
+  }
+  MemoryMap = SctAllocatePool(MemoryMapSize);
+  if (MemoryMap == 0) {
+    return EFI_OUT_OF_RESOURCES;
+  }
+  Status = gtBS->GetMemoryMap (
+              &MemoryMapSize,
+              MemoryMap,
+              &MapKey,
+              &DescriptorSize,
+              &DescriptorVersion
+              );
+  if (EFI_ERROR (Status)) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion001Guid,
+                L"MemoryMap",
+                L"%a:%d - MemoryMap Not Found",
+                __FILE__,
+                __LINE__
+                );
+    SctFreePool(MemoryMap);
+    return EFI_SUCCESS;
+  }
+
+  //
+  // Looping through each descriptor
+  //
+  for (i = 0; i < MemoryMapSize / DescriptorSize; i++) {
+    MemoryMapDescriptor = (EFI_MEMORY_DESCRIPTOR *)(MemoryMap + (i * DescriptorSize));
+    error = FALSE;
+
+    //
+    // Checking for identity mapping
+    //
+    if (MemoryMapDescriptor->PhysicalStart != MemoryMapDescriptor->VirtualStart) {
+      StandardLib->RecordAssertion (
+                  StandardLib,
+                  EFI_TEST_ASSERTION_FAILED,
+                  gSbbrBootServicesAssertion001Guid,
+                  L"MemoryMap",
+                  L"%a:%d - MemoryMap 0x%X Not Identity Mapped",
+                  __FILE__,
+                  __LINE__,
+                  MemoryMapDescriptor
+                  );
+      error = TRUE;
+    }
+
+    //
+    // Checking attribute
+    //
+    if (SbbrBootServicesIsRam(MemoryMapDescriptor) == TRUE && !(MemoryMapDescriptor->Attribute & EFI_MEMORY_WB)) {
+      StandardLib->RecordAssertion (
+                  StandardLib,
+                  EFI_TEST_ASSERTION_FAILED,
+                  gSbbrBootServicesAssertion001Guid,
+                  L"MemoryMap",
+                  L"%a:%d - MemoryMap 0x%X Attribute Not Supported",
+                  __FILE__,
+                  __LINE__,
+                  MemoryMapDescriptor
+                  );
+      error = TRUE;
+    }
+
+    //
+    // Checking for 64KB alignment
+    //
+    if (MemoryMapDescriptor->PhysicalStart & (SIZE_64KB - 1)) {
+      StandardLib->RecordAssertion (
+                  StandardLib,
+                  EFI_TEST_ASSERTION_FAILED,
+                  gSbbrBootServicesAssertion001Guid,
+                  L"MemoryMap",
+                  L"%a:%d - MemoryMap 0x%X Not Aligned to 64KB",
+                  __FILE__,
+                  __LINE__,
+                  MemoryMapDescriptor
+                  );
+      error = TRUE;
+    }
+
+    //
+    // No issues found
+    //
+    if (error == FALSE) {
+      StandardLib->RecordAssertion (
+                  StandardLib,
+                  EFI_TEST_ASSERTION_PASSED,
+                  gSbbrBootServicesAssertion001Guid,
+                  L"MemoryMap 0x%X",
+                  L"%a:%d",
+                  __FILE__,
+                  __LINE__,
+                  MemoryMapDescriptor
+                  );
+    }
+  }
+
+  SctFreePool(MemoryMap);
+  return EFI_SUCCESS;
+}
+
+/**
+ *  Entrypoint for AcpiTable 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.
+ */
+
+EFI_STATUS
+BBTestAcpiTableTest (
+  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;
+  UINTN                               IStatus;
+  EFI_ACPI_2_0_ROOT_SYSTEM_DESCRIPTION_POINTER     *AcpiTable;
+  UINT8                               Checksum;
+  UINT32                              i;
+
+  //
+  // Get the Standard Library Interface
+  //
+  Status = gtBS->HandleProtocol (
+              SupportHandle,
+              &gEfiStandardTestLibraryGuid,
+              &StandardLib
+              );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  //
+  // Looking for ACPI table
+  //
+  Status = SctGetSystemConfigurationTable (
+              &gEfiAcpi20TableGuid,
+              &AcpiTable
+              );
+  if (EFI_ERROR (Status)){
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion002Guid,
+                L"AcpiTable",
+                L"%a:%d - ACPI Table Not Found",
+                __FILE__,
+                __LINE__
+                );
+  }
+
+  //
+  // Checking ACPI table signature
+  //
+  IStatus = SctCompareMem (
+              &AcpiTable->Signature,
+              RSDP_SIGNATURE_STRING,
+              sizeof(RSDP_SIGNATURE_STRING) - 1
+              );
+  if (IStatus != 0) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion002Guid,
+                L"AcpiTable",
+                L"%a:%d - ACPI Table Invalid Signature",
+                __FILE__,
+                __LINE__
+                );
+  }
+
+  //
+  // Checking ACPI table checksum
+  //
+  Checksum = SbbrBootServicesByteChecksum (AcpiTable, ACPI_TABLE_CHECKSUM_LENGTH);
+  if (Checksum != 0) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion002Guid,
+                L"AcpiTable",
+                L"%a:%d - ACPI Table Invalid Checksum",
+                __FILE__,
+                __LINE__
+                );
+    return EFI_SUCCESS;
+  }
+
+  //
+  // Checking ACPI table extended checksum
+  //
+  Checksum = SbbrBootServicesByteChecksum (AcpiTable, AcpiTable->Length);
+  if (Checksum != 0) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion002Guid,
+                L"AcpiTable",
+                L"%a:%d - ACPI Table Invalid Extended Checksum",
+                __FILE__,
+                __LINE__
+                );
+    return EFI_SUCCESS;
+  }
+
+  //
+  // Checking ACPI table length
+  //
+  if (AcpiTable->Length != ACPI_TABLE_EXPECTED_LENGTH) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion002Guid,
+                L"AcpiTable",
+                L"%a:%d - ACPI Table Invalid Length",
+                __FILE__,
+                __LINE__
+                );
+    return EFI_SUCCESS;
+  }
+
+  //
+  // Checking ACPI table XSDT address
+  //
+  if (AcpiTable->XsdtAddress == 0) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion002Guid,
+                L"AcpiTable",
+                L"%a:%d - ACPI Table Invalid XSDT Pointer",
+                __FILE__,
+                __LINE__
+                );
+    return EFI_SUCCESS;
+  }
+
+  StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_PASSED,
+                gSbbrBootServicesAssertion002Guid,
+                L"AcpiTable",
+                L"%a:%d",
+                __FILE__,
+                __LINE__
+                );
+
+  return EFI_SUCCESS;
+}
+
+/**
+ *  Entrypoint for SmbiosTable 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.
+ */
+
+EFI_STATUS
+BBTestSmbiosTableTest (
+  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;
+  INTN                                IStatus;
+  SMBIOS_TABLE_3_0_ENTRY_POINT        *SmbiosTable;
+  UINT8                               Checksum;
+  UINT32                              i;
+
+  //
+  // Get the Standard Library Interface
+  //
+  Status = gtBS->HandleProtocol (
+              SupportHandle,
+              &gEfiStandardTestLibraryGuid,
+              &StandardLib
+              );
+  if (EFI_ERROR (Status)) {
+    return Status;
+  }
+
+  //
+  // Looking for SMBIOS table
+  //
+  Status = SctGetSystemConfigurationTable (
+              &gEfiSmbios3TableGuid,
+              &SmbiosTable
+              );
+  if (EFI_ERROR(Status)) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion003Guid,
+                L"SmbiosTable",
+                L"%a:%d - SMBIOS Table Not Found",
+                __FILE__,
+                __LINE__
+                );
+    return EFI_SUCCESS;
+  }
+
+  //
+  // Checking SMBIOS Anchor String
+  //
+  IStatus = SctCompareMem (
+              SmbiosTable->AnchorString,
+              SMBIOS30_ANCHOR_STRING,
+              sizeof(SMBIOS30_ANCHOR_STRING) - 1
+              );
+  if (IStatus != 0) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion003Guid,
+                L"SmbiosTable",
+                L"%a:%d - SMBIOS Table Anchor String Not Found",
+                __FILE__,
+                __LINE__
+                );
+    return EFI_SUCCESS;
+  }
+
+  //
+  // Checking entry point revision
+  //
+  if (SmbiosTable->EntryPointRevision != 1) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion003Guid,
+                L"SmbiosTable",
+                L"%a:%d - SMBIOS Table Invalid Entry Point Revision",
+                __FILE__,
+                __LINE__
+                );
+    return EFI_SUCCESS;
+  }
+
+  //
+  // Checking entry point checksum
+  //
+  Checksum = SbbrBootServicesByteChecksum (SmbiosTable, SmbiosTable->EntryPointLength);
+  if (Checksum != 0) {
+    StandardLib->RecordAssertion (
+                StandardLib,
+                EFI_TEST_ASSERTION_FAILED,
+                gSbbrBootServicesAssertion003Guid,
+                L"SmbiosTable",
+                L"%a:%d - SMBIOS Table Invalid Checksum",
+                __FILE__,
+                __LINE__
+                );
+    return EFI_SUCCESS;
+  }
+
+  StandardLib->RecordAssertion (
+              StandardLib,
+              EFI_TEST_ASSERTION_PASSED,
+              gSbbrBootServicesAssertion003Guid,
+              L"SmbiosTable",
+              L"%a:%d",
+              __FILE__,
+              __LINE__
+              );
+
+  return EFI_SUCCESS;
+}
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestFunction.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestFunction.h
new file mode 100644
index 0000000..841aed9
--- /dev/null
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestFunction.h
@@ -0,0 +1,85 @@
+/*++
+  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 Ltd. All rights reserved.
+
+--*/
+/*++
+
+Module Name:
+
+  SbbrBootServicesBBTestFunction.h
+
+Abstract:
+
+  Contains definitions and prototypes for test case functions.
+
+--*/
+
+#ifndef _SBBRBOOTSERVICES_BB_TEST_FUNCTION_H_
+#define _SBBRBOOTSERVICES_BB_TEST_FUNCTION_H_
+
+EFI_STATUS
+BBTestMemoryMapTest (
+  IN EFI_BB_TEST_PROTOCOL       *This,
+  IN VOID                       *ClientInterface,
+  IN EFI_TEST_LEVEL             TestLevel,
+  IN EFI_HANDLE                 SupportHandle
+  );
+
+EFI_STATUS
+BBTestAcpiTableTest (
+  IN EFI_BB_TEST_PROTOCOL       *This,
+  IN VOID                       *ClientInterface,
+  IN EFI_TEST_LEVEL             TestLevel,
+  IN EFI_HANDLE                 SupportHandle
+  );
+
+EFI_STATUS
+BBTestSmbiosTableTest (
+  IN EFI_BB_TEST_PROTOCOL       *This,
+  IN VOID                       *ClientInterface,
+  IN EFI_TEST_LEVEL             TestLevel,
+  IN EFI_HANDLE                 SupportHandle
+  );
+
+#endif /* _SBBRBOOTSERVICES_BB_TEST_FUNCTION_H_ */
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestMain.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestMain.c
new file mode 100644
index 0000000..584b38c
--- /dev/null
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestMain.c
@@ -0,0 +1,149 @@
+/*++
+  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 Ltd. All rights reserved.
+
+--*/
+/*++
+
+Module Name:
+
+  SbbrBootServicesBBTestMain.c
+
+Abstract:
+
+  Test driver for SbbrBootServices tests.
+
+--*/
+
+#include "SctLib.h"
+#include "SbbrBootServicesBBTestMain.h"
+#include "SbbrBootServicesBBTestFunction.h"
+
+EFI_BB_TEST_PROTOCOL_FIELD gBBTestProtocolField = {
+  SBBRBOOTSERVICES_TEST_REVISION,
+  SBBRBOOTSERVICES_TEST_GUID,
+  L"SbbrBootServices Tests",
+  L"Tests SBBR boot services requirements."
+};
+
+EFI_GUID gSupportProtocolGuid[2] = {
+  EFI_STANDARD_TEST_LIBRARY_GUID,
+  EFI_NULL_GUID
+};
+
+EFI_BB_TEST_ENTRY_FIELD gBBTestEntryField[] = {
+  {
+    SBBRBOOTSERVICES_MEMORYMAP_GUID,
+    L"MemoryMap",
+    L"Checks memory map provided by UEFI.",
+    EFI_TEST_LEVEL_DEFAULT,
+    gSupportProtocolGuid,
+    EFI_TEST_CASE_AUTO,
+    BBTestMemoryMapTest
+  },
+  {
+    SBBRBOOTSERVICES_SMBIOSTABLE_GUID,
+    L"SmbiosTable",
+    L"Checks that SMBIOS3 table is provided by UEFI.",
+    EFI_TEST_LEVEL_DEFAULT,
+    gSupportProtocolGuid,
+    EFI_TEST_CASE_AUTO,
+    BBTestSmbiosTableTest
+  },
+  {
+    SBBRBOOTSERVICES_ACPITABLE_GUID,
+    L"AcpiTable",
+    L"Checks that ACPI table is provided by UEFI.",
+    EFI_TEST_LEVEL_DEFAULT,
+    gSupportProtocolGuid,
+    EFI_TEST_CASE_AUTO,
+    BBTestAcpiTableTest
+  },
+  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
+BBTestSbbrBootServicesUnload (
+  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
+InitializeBBTestSbbrBootServices (
+  IN EFI_HANDLE           ImageHandle,
+  IN EFI_SYSTEM_TABLE     *SystemTable
+  )
+{
+
+  EfiInitializeTestLib (ImageHandle, SystemTable);
+  SctInitializeLib (ImageHandle, SystemTable);
+
+  return EfiInitAndInstallBBTestInterface (
+           &ImageHandle,
+           &gBBTestProtocolField,
+           gBBTestEntryField,
+           BBTestSbbrBootServicesUnload,
+           &gBBTestProtocolInterface
+           );
+}
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestMain.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestMain.h
new file mode 100644
index 0000000..e0a81ab
--- /dev/null
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTestMain.h
@@ -0,0 +1,99 @@
+/*++
+  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 Ltd. All rights reserved.
+
+--*/
+/*++
+
+Module Name:
+
+  SbbrBootServicesBBTestMain.h
+
+Abstract:
+
+  Contains definitions for test information and test GUIDs.
+
+--*/
+
+#ifndef _SBBRBOOTSERVICES_TEST_MAIN_H_
+#define _SBBRBOOTSERVICES_TEST_MAIN_H_
+
+#include "Efi.h"
+#include "Guid.h"
+#include <Library/EfiTestLib.h>
+
+#define SBBRBOOTSERVICES_TEST_REVISION 0x00010000
+
+#define SBBRBOOTSERVICES_TEST_GUID \
+  { 0x8dafd7a7, 0x44d0, 0x4cf4, {0x9d, 0x28, 0x9f, 0x87, 0x08, 0x0f, 0xc0, 0x91 }}
+
+#define ACPI_TABLE_EXPECTED_LENGTH 36
+#define ACPI_TABLE_CHECKSUM_LENGTH 20
+#define SMBIOS30_ANCHOR_STRING "_SM3_"
+#define RSDP_SIGNATURE_STRING "RSD PTR "
+
+EFI_STATUS
+InitializeBBTestSbbrBootServices (
+  IN EFI_HANDLE           ImageHandle,
+  IN EFI_SYSTEM_TABLE     *SystemTable
+  );
+
+EFI_STATUS
+BBTestSbbrBootServicesUnload (
+  IN EFI_HANDLE       ImageHandle
+  );
+
+//
+// Test Case GUIDs
+//
+
+#define SBBRBOOTSERVICES_MEMORYMAP_GUID \
+  { 0x8540c12d, 0x5413, 0x4a0b, {0xa5, 0x45, 0x89, 0xa8, 0xe3, 0xc7, 0xda, 0x4b }}
+
+#define SBBRBOOTSERVICES_ACPITABLE_GUID \
+  { 0x40ff8495, 0x8ae9, 0x442e, {0x89, 0xf2, 0xf8, 0x97, 0xbb, 0x7c, 0x41, 0x75 }}
+
+#define SBBRBOOTSERVICES_SMBIOSTABLE_GUID \
+  { 0xc44ca44c, 0x4f4e, 0x4760, {0x96, 0xc9, 0xb8, 0xcd, 0xe5, 0x31, 0xb4, 0xc4 }}
+
+#endif /* _SBBRBOOTSERVICES_TEST_MAIN_H_ */
diff --git a/uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc b/uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc
index ae0a009..d3fafb6 100644
--- a/uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc
+++ b/uefi-sct/SctPkg/UEFI/SBBR_SCT.dsc
@@ -247,6 +247,13 @@ SctPkg/TestCase/UEFI/EFI/Generic/SbbrSysEnvConfig/BlackBoxTest/SysEnvConfigBBTes
 #End of UEFI System Environment and Configuration Tests - SBBR v1.0 3.3
 
 #
+# UEFI Boot Services - SBBR v1.0 3.4
+#
+## 3.4.4 Configuration Tables
+SctPkg/TestCase/UEFI/EFI/BootServices/SbbrBootServices/BlackBoxTest/SbbrBootServicesBBTest.inf
+# End of UEFI Boot Services - SBBR v1.0 3.4
+
+#
 # Required UEFI Runtime Services Tests - SBBR v1.0 Appendix B
 #
 ##  1. EFI_GET_TIME
-- 
2.7.4



  parent reply	other threads:[~2018-11-06  8:48 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-06  8:47 [edk2-test][RFC PATCH 01/12] uefi-sct/SctPkg: sbbr: Add support to build SBBR v1.0 test cases Sakar Arora
2018-11-06  8:47 ` [edk2-test][RFC PATCH 02/12] uefi-sct/SctPkg: sbbr: Add boot services test cases for SBBR v1.0 Sakar Arora
2018-11-06 17:30   ` Leif Lindholm
2018-11-06  8:47 ` [edk2-test][RFC PATCH 03/12] uefi-sct/SctPkg: sbbr: Add System Environment Configuration Test Cases Sakar Arora
2018-11-06 17:38   ` Leif Lindholm
2018-11-06  8:47 ` [edk2-test][RFC PATCH 04/12] uefi-sct/SctPkg: sbbr: Add Required UEFI Runtime Services tests Sakar Arora
2018-11-06 17:40   ` Leif Lindholm
2018-11-06  8:47 ` [edk2-test][RFC PATCH 05/12] uefi-sct/SctPkg: sbbr: Add test cases for SBBR v1.0 Appendix C Sakar Arora
2018-11-06  8:47 ` [edk2-test][RFC PATCH 06/12] uefi-sct/SctPkg: sbbr: Add test cases for SBBR v1.0 3.5.4 and 3.5.5 Sakar Arora
2018-11-06  8:47 ` Sakar Arora [this message]
2018-11-06 17:46   ` [edk2-test][RFC PATCH 07/12] uefi-sct/SctPkg: sbbr: Add test cases for SBBR v1.0 boot services Leif Lindholm
2018-11-07 20:55     ` Supreeth Venkatesh
2018-11-06  8:47 ` [edk2-test][RFC PATCH 08/12] uefi-sct/SctPkg: sbbr: UEFI Version Verification Test Sakar Arora
2018-11-06 17:48   ` Leif Lindholm
2018-11-06  8:47 ` [edk2-test][RFC PATCH 09/12] uefi-sct/SctPkg: sbbr: UEFI SMBIOS Base Requirements Sakar Arora
2018-11-06  8:47 ` [edk2-test][RFC PATCH 10/12] uefi-sct/SctPkg: sbbr: Corrected path to ArmBaseLib.inf in SBBR_SCT.dsc Sakar Arora
2018-11-06 17:51   ` Leif Lindholm
2018-11-06  8:47 ` [edk2-test][RFC PATCH 11/12] uefi-sct/SctPkg: sbbr: Bugfix for MemoryMap Check Test Sakar Arora
2018-11-06 17:53   ` Leif Lindholm
2018-11-20  7:55   ` Jin, Eric
2018-11-06  8:47 ` [edk2-test][RFC PATCH 12/12] uefi-sct/SctPkg: sbbr: Modify SBBR description file to add missing dependencies Sakar Arora
2018-11-06 17:56   ` Leif Lindholm
2018-11-06 12:45 ` [edk2-test][RFC PATCH 01/12] uefi-sct/SctPkg: sbbr: Add support to build SBBR v1.0 test cases Leif Lindholm
2018-11-06 17:39   ` Supreeth Venkatesh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1541494066-16288-7-git-send-email-sakar.arora@arm.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox