summaryrefslogtreecommitdiff
path: root/MdePkg/Test/Mock/Include/GoogleTest/Library
diff options
context:
space:
mode:
Diffstat (limited to 'MdePkg/Test/Mock/Include/GoogleTest/Library')
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockCpuLib.h64
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h164
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockHobLib.h150
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockPciSegmentLib.h350
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockPeiServicesLib.h189
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockPostCodeLib.h56
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockReportStatusCodeLib.h29
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockSmmServicesTableLib.h166
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiBootServicesTableLib.h78
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h373
-rw-r--r--MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiRuntimeServicesTableLib.h49
11 files changed, 1668 insertions, 0 deletions
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockCpuLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockCpuLib.h
new file mode 100644
index 000000000000..f4fd0d5941fa
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockCpuLib.h
@@ -0,0 +1,64 @@
+/** @file MockCpuLib.h
+ Google Test mocks for the CPU Library
+
+ Copyright (c) Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_CPU_LIB_H_
+#define MOCK_CPU_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+
+extern "C" {
+ #include <Uefi.h>
+}
+
+struct MockCpuLib {
+ MOCK_INTERFACE_DECLARATION (MockCpuLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ CpuSleep,
+ (
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ CpuFlushTlb,
+ (
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ InitializeFloatingPointUnits,
+ (
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ BOOLEAN,
+ StandardSignatureIsAuthenticAMD,
+ (
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ GetCpuFamilyModel,
+ (
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ GetCpuSteppingId,
+ (
+ )
+ );
+};
+
+#endif
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
new file mode 100644
index 000000000000..87ba35373990
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
@@ -0,0 +1,164 @@
+/** @file
+ Google Test mocks for FdtLib
+
+ Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+ Copyright (c) 2023, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_FDT_LIB_H_
+#define MOCK_FDT_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+extern "C" {
+ #include <Base.h>
+ #include <Library/FdtLib.h>
+}
+
+struct MockFdtLib {
+ MOCK_INTERFACE_DECLARATION (MockFdtLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ Fdt16ToCpu,
+ (IN UINT16 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ CpuToFdt16,
+ (IN UINT16 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ Fdt32ToCpu,
+ (IN UINT32 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ CpuToFdt32,
+ (IN UINT32 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT64,
+ Fdt64ToCpu,
+ (IN UINT64 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT64,
+ CpuToFdt64,
+ (IN UINT64 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtCheckHeader,
+ (IN CONST VOID *Fdt)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtCreateEmptyTree,
+ (IN VOID *Buffer,
+ IN UINT32 BufferSize)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNextNode,
+ (IN CONST VOID *Fdt,
+ IN INT32 Offset,
+ IN INT32 *Depth)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtFirstSubnode,
+ (IN CONST VOID *Fdt,
+ IN INT32 Offset)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNextSubnode,
+ (IN CONST VOID *Fdt,
+ IN INT32 Offset)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtSubnodeOffsetNameLen,
+ (IN CONST VOID *Fdt,
+ IN INT32 ParentOffset,
+ IN CONST CHAR8 *Name,
+ IN INT32 NameLength)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNodeOffsetByPropertyValue,
+ (IN CONST VOID *Fdt,
+ IN INT32 StartOffset,
+ IN CONST CHAR8 *PropertyName,
+ IN CONST VOID *PropertyValue,
+ IN INT32 PropertyLength)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ CONST FDT_PROPERTY *,
+ FdtGetProperty,
+ (IN CONST VOID *Fdt,
+ IN INT32 NodeOffset,
+ IN CONST CHAR8 *Name,
+ IN INT32 *Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtFirstPropertyOffset,
+ (IN CONST VOID *Fdt,
+ IN INT32 NodeOffset)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNextPropertyOffset,
+ (IN CONST VOID *Fdt,
+ IN INT32 NodeOffset)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ CONST FDT_PROPERTY *,
+ FdtGetPropertyByOffset,
+ (IN CONST VOID *Fdt,
+ IN INT32 Offset,
+ IN INT32 *Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ CONST CHAR8 *,
+ FdtGetString,
+ (IN CONST VOID *Fdt,
+ IN INT32 StrOffset,
+ IN INT32 *Length OPTIONAL)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtAddSubnode,
+ (IN VOID *Fdt,
+ IN INT32 ParentOffset,
+ IN CONST CHAR8 *Name)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtSetProperty,
+ (IN VOID *Fdt,
+ IN INT32 NodeOffset,
+ IN CONST CHAR8 *Name,
+ IN CONST VOID *Value,
+ IN UINT32 Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ CONST CHAR8 *,
+ FdtGetName,
+ (IN VOID *Fdt,
+ IN INT32 NodeOffset,
+ IN INT32 *Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNodeDepth,
+ (IN CONST VOID *Fdt,
+ IN INT32 NodeOffset)
+ );
+};
+
+#endif
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockHobLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockHobLib.h
new file mode 100644
index 000000000000..b2177126b814
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockHobLib.h
@@ -0,0 +1,150 @@
+/** @file
+ Google Test mocks for HobLib
+
+ Copyright (c) 2023, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_HOB_LIB_H_
+#define MOCK_HOB_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+extern "C" {
+ #include <Pi/PiMultiPhase.h>
+ #include <Uefi.h>
+ #include <Library/HobLib.h>
+}
+
+struct MockHobLib {
+ MOCK_INTERFACE_DECLARATION (MockHobLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID *,
+ GetHobList,
+ ()
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID *,
+ GetNextHob,
+ (IN UINT16 Type,
+ IN CONST VOID *HobStart)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID *,
+ GetFirstHob,
+ (IN UINT16 Type)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID *,
+ GetNextGuidHob,
+ (IN CONST EFI_GUID *Guid,
+ IN CONST VOID *HobStart)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID *,
+ GetFirstGuidHob,
+ (IN CONST EFI_GUID *Guid)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_BOOT_MODE,
+ GetBootModeHob,
+ ()
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildModuleHob,
+ (IN CONST EFI_GUID *ModuleName,
+ IN EFI_PHYSICAL_ADDRESS MemoryAllocationModule,
+ IN UINT64 ModuleLength,
+ IN EFI_PHYSICAL_ADDRESS EntryPoint)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildResourceDescriptorWithOwnerHob,
+ (IN EFI_RESOURCE_TYPE ResourceType,
+ IN EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute,
+ IN EFI_PHYSICAL_ADDRESS PhysicalStart,
+ IN UINT64 NumberOfBytes,
+ IN EFI_GUID *OwnerGUID)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildResourceDescriptorHob,
+ (IN EFI_RESOURCE_TYPE ResourceType,
+ IN EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute,
+ IN EFI_PHYSICAL_ADDRESS PhysicalStart,
+ IN UINT64 NumberOfBytes)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID *,
+ BuildGuidHob,
+ (IN CONST EFI_GUID *Guid,
+ IN UINTN DataLength)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID *,
+ BuildGuidDataHob,
+ (IN CONST EFI_GUID *Guid,
+ IN VOID *Data,
+ IN UINTN DataLength)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildFvHob,
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,
+ IN UINT64 Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildFv2Hob,
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,
+ IN UINT64 Length,
+ IN CONST EFI_GUID *FvName,
+ IN CONST EFI_GUID *FileName)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildFv3Hob,
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,
+ IN UINT64 Length,
+ IN UINT32 AuthenticationStatus,
+ IN BOOLEAN ExtractedFv,
+ IN CONST EFI_GUID *FvName OPTIONAL,
+ IN CONST EFI_GUID *FileName OPTIONAL)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildCvHob,
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,
+ IN UINT64 Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildCpuHob,
+ (IN UINT8 SizeOfMemorySpace,
+ IN UINT8 SizeOfIoSpace)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildStackHob,
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,
+ IN UINT64 Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildBspStoreHob,
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,
+ IN UINT64 Length,
+ IN EFI_MEMORY_TYPE MemoryType)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ BuildMemoryAllocationHob,
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,
+ IN UINT64 Length,
+ IN EFI_MEMORY_TYPE MemoryType)
+ );
+};
+
+#endif
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPciSegmentLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPciSegmentLib.h
new file mode 100644
index 000000000000..1859f73864b7
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPciSegmentLib.h
@@ -0,0 +1,350 @@
+/** @file MockPciSegmentLib.h
+ Google Test mocks for PciSegmentLib
+
+ Copyright (c) Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_PCISEGMENTLIB_H_
+#define MOCK_PCISEGMENTLIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+
+extern "C" {
+ #include <Uefi.h>
+}
+
+struct MockPciSegmentLib {
+ MOCK_INTERFACE_DECLARATION (MockPciSegmentLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ RETURN_STATUS,
+ PciSegmentRegisterForRuntimeAccess,
+ (
+ IN UINTN Address
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentRead8,
+ (
+ IN UINT64 Address
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentWrite8,
+ (
+ IN UINT64 Address,
+ IN UINT8 Value
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentOr8,
+ (
+ IN UINT64 Address,
+ IN UINT8 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentAnd8,
+ (
+ IN UINT64 Address,
+ IN UINT8 AndData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentAndThenOr8,
+ (
+ IN UINT64 Address,
+ IN UINT8 AndData,
+ IN UINT8 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentBitFieldRead8,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentBitFieldWrite8,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT8 Value
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentBitFieldOr8,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT8 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentBitFieldAnd8,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT8 AndData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT8,
+ PciSegmentBitFieldAndThenOr8,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT8 AndData,
+ IN UINT8 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentRead16,
+ (
+ IN UINT64 Address
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentWrite16,
+ (
+ IN UINT64 Address,
+ IN UINT16 Value
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentOr16,
+ (
+ IN UINT64 Address,
+ IN UINT16 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentAnd16,
+ (
+ IN UINT64 Address,
+ IN UINT16 AndData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentAndThenOr16,
+ (
+ IN UINT64 Address,
+ IN UINT16 AndData,
+ IN UINT16 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentBitFieldRead16,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentBitFieldWrite16,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT16 Value
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentBitFieldOr16,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT16 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentBitFieldAnd16,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT16 AndData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ PciSegmentBitFieldAndThenOr16,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT16 AndData,
+ IN UINT16 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentRead32,
+ (
+ IN UINT64 Address
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentWrite32,
+ (
+ IN UINT64 Address,
+ IN UINT32 Value
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentOr32,
+ (
+ IN UINT64 Address,
+ IN UINT32 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentAnd32,
+ (
+ IN UINT64 Address,
+ IN UINT32 AndData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentAndThenOr32,
+ (
+ IN UINT64 Address,
+ IN UINT32 AndData,
+ IN UINT32 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentBitFieldRead32,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentBitFieldWrite32,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT32 Value
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentBitFieldOr32,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT32 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentBitFieldAnd32,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT32 AndData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PciSegmentBitFieldAndThenOr32,
+ (
+ IN UINT64 Address,
+ IN UINTN StartBit,
+ IN UINTN EndBit,
+ IN UINT32 AndData,
+ IN UINT32 OrData
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINTN,
+ PciSegmentReadBuffer,
+ (
+ IN UINT64 StartAddress,
+ IN UINTN Size,
+ OUT VOID *Buffer
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINTN,
+ PciSegmentWriteBuffer,
+ (
+ IN UINT64 StartAddress,
+ IN UINTN Size,
+ IN VOID *Buffer
+ )
+ );
+};
+
+#endif
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPeiServicesLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPeiServicesLib.h
new file mode 100644
index 000000000000..ef56e052d7ae
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPeiServicesLib.h
@@ -0,0 +1,189 @@
+/** @file
+ Google Test mocks for PeiServicesLib
+
+ Copyright (c) 2023, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_PEI_SERVICES_LIB_H_
+#define MOCK_PEI_SERVICES_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+extern "C" {
+ #include <PiPei.h>
+ #include <Uefi.h>
+ #include <Library/PeiServicesLib.h>
+}
+
+struct MockPeiServicesLib {
+ MOCK_INTERFACE_DECLARATION (MockPeiServicesLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesInstallPpi,
+ (IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesReInstallPpi,
+ (IN CONST EFI_PEI_PPI_DESCRIPTOR *OldPpi,
+ IN CONST EFI_PEI_PPI_DESCRIPTOR *NewPpi)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesLocatePpi,
+ (IN CONST EFI_GUID *Guid,
+ IN UINTN Instance,
+ IN OUT EFI_PEI_PPI_DESCRIPTOR **PpiDescriptor OPTIONAL,
+ IN OUT VOID **Ppi)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesNotifyPpi,
+ (IN CONST EFI_PEI_NOTIFY_DESCRIPTOR *NotifyList)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesGetBootMode,
+ (OUT EFI_BOOT_MODE *BootMode)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesSetBootMode,
+ (IN EFI_BOOT_MODE BootMode)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesGetHobList,
+ (OUT VOID **HobList)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesCreateHob,
+ (IN UINT16 Type,
+ IN UINT16 Length,
+ OUT VOID **Hob)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesFfsFindNextVolume,
+ (IN UINTN Instance,
+ IN OUT EFI_PEI_FV_HANDLE *VolumeHandle)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesFfsFindNextFile,
+ (IN EFI_FV_FILETYPE SearchType,
+ IN EFI_PEI_FV_HANDLE VolumeHandle,
+ IN OUT EFI_PEI_FILE_HANDLE *FileHandle)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesFfsFindSectionData,
+ (IN EFI_SECTION_TYPE SectionType,
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ OUT VOID **SectionData)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesFfsFindSectionData3,
+ (IN EFI_SECTION_TYPE SectionType,
+ IN UINTN SectionInstance,
+ IN EFI_PEI_FILE_HANDLE FileHandle,
+ OUT VOID **SectionData,
+ OUT UINT32 *AuthenticationStatus)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesInstallPeiMemory,
+ (IN EFI_PHYSICAL_ADDRESS MemoryBegin,
+ IN UINT64 MemoryLength)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesAllocatePages,
+ (IN EFI_MEMORY_TYPE MemoryType,
+ IN UINTN Pages,
+ OUT EFI_PHYSICAL_ADDRESS *Memory)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesFreePages,
+ (IN EFI_PHYSICAL_ADDRESS Memory,
+ IN UINTN Pages)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesAllocatePool,
+ (IN UINTN Size,
+ OUT VOID **Buffer)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesResetSystem,
+ ()
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesFfsFindFileByName,
+ (IN CONST EFI_GUID *FileName,
+ IN CONST EFI_PEI_FV_HANDLE VolumeHandle,
+ OUT EFI_PEI_FILE_HANDLE *FileHandle)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesFfsGetFileInfo,
+ (IN CONST EFI_PEI_FILE_HANDLE FileHandle,
+ OUT EFI_FV_FILE_INFO *FileInfo)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesFfsGetFileInfo2,
+ (IN CONST EFI_PEI_FILE_HANDLE FileHandle,
+ OUT EFI_FV_FILE_INFO2 *FileInfo)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesFfsGetVolumeInfo,
+ (IN EFI_PEI_FV_HANDLE VolumeHandle,
+ OUT EFI_FV_INFO *VolumeInfo)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ PeiServicesRegisterForShadow,
+ (IN EFI_PEI_FILE_HANDLE FileHandle)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ PeiServicesInstallFvInfoPpi,
+ (IN CONST EFI_GUID *FvFormat OPTIONAL,
+ IN CONST VOID *FvInfo,
+ IN UINT32 FvInfoSize,
+ IN CONST EFI_GUID *ParentFvName OPTIONAL,
+ IN CONST EFI_GUID *ParentFileName OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ PeiServicesInstallFvInfo2Ppi,
+ (IN CONST EFI_GUID *FvFormat OPTIONAL,
+ IN CONST VOID *FvInfo,
+ IN UINT32 FvInfoSize,
+ IN CONST EFI_GUID *ParentFvName OPTIONAL,
+ IN CONST EFI_GUID *ParentFileName OPTIONAL,
+ IN UINT32 AuthenticationStatus)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ PeiServicesResetSystem2,
+ (IN EFI_RESET_TYPE ResetType,
+ IN EFI_STATUS ResetStatus,
+ IN UINTN DataSize,
+ IN VOID *ResetData OPTIONAL)
+ );
+};
+
+#endif
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPostCodeLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPostCodeLib.h
new file mode 100644
index 000000000000..aa4b81fba5f1
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPostCodeLib.h
@@ -0,0 +1,56 @@
+/** @file MockPostCodeLib.h
+ Google Test mocks for PostCodeLib
+
+ Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+ Copyright (c) Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_POST_CODE_LIB_H_
+#define MOCK_POST_CODE_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+extern "C" {
+ #include <Uefi.h>
+ #include <Library/PostCodeLib.h>
+}
+
+struct MockPostCodeLib {
+ MOCK_INTERFACE_DECLARATION (MockPostCodeLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PostCode,
+ (
+ IN UINT32 Value
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ PostCodeWithDescription,
+ (
+ IN UINT32 Value,
+ IN CONST CHAR8 *Description OPTIONAL
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ BOOLEAN,
+ PostCodeEnabled,
+ (
+
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ BOOLEAN,
+ PostCodeDescriptionEnabled,
+ (
+
+ )
+ );
+};
+
+#endif //MOCK_PCI_EXPRESS_LIB_H_
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockReportStatusCodeLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockReportStatusCodeLib.h
new file mode 100644
index 000000000000..17156ea7be05
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockReportStatusCodeLib.h
@@ -0,0 +1,29 @@
+/** @file MockReportStatusCodeLib.h
+ Google Test mocks for ReportStatusCodeLib
+
+ Copyright (c) Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_REPORT_STATUS_CODE_LIB_H_
+#define MOCK_REPORT_STATUS_CODE_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+
+extern "C" {
+ #include <Uefi.h>
+ #include <Library/ReportStatusCodeLib.h>
+}
+
+struct MockReportStatusCodeLib {
+ MOCK_INTERFACE_DECLARATION (MockReportStatusCodeLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ BOOLEAN,
+ ReportProgressCodeEnabled,
+ ()
+ );
+};
+
+#endif //MOCK_REPORT_STATUS_CODE_LIB_H_
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockSmmServicesTableLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockSmmServicesTableLib.h
new file mode 100644
index 000000000000..74d37d93e886
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockSmmServicesTableLib.h
@@ -0,0 +1,166 @@
+/** @file MockSmmServicesTableLib.h
+ Google Test mocks for SmmServicesTableLib
+
+ Copyright (c) Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_SMM_SERVICES_TABLE_LIB_H_
+#define MOCK_SMM_SERVICES_TABLE_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+extern "C" {
+ #include <Uefi.h>
+ #include <Library/SmmServicesTableLib.h>
+}
+
+//
+// Declarations to handle usage of the SmmServicesTableLib by creating mock
+//
+struct MockSmmServicesTableLib {
+ MOCK_INTERFACE_DECLARATION (MockSmmServicesTableLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmAllocatePool,
+ (
+ IN EFI_MEMORY_TYPE PoolType,
+ IN UINTN Size,
+ OUT VOID **Buffer
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmFreePool,
+ (
+ IN VOID *Buffer
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmAllocatePages,
+ (
+ IN EFI_ALLOCATE_TYPE Type,
+ IN EFI_MEMORY_TYPE MemoryType,
+ IN UINTN Pages,
+ OUT EFI_PHYSICAL_ADDRESS *Memory
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmFreePages,
+ (
+ IN EFI_PHYSICAL_ADDRESS Memory,
+ IN UINTN Pages
+ )
+ );
+
+ // MP service
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmStartupThisAp,
+ (
+ IN EFI_AP_PROCEDURE Procedure,
+ IN UINTN CpuNumber,
+ IN OUT VOID *ProcArguments OPTIONAL
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmInstallProtocolInterface,
+ (
+ IN OUT EFI_HANDLE *Handle,
+ IN EFI_GUID *Protocol,
+ IN EFI_INTERFACE_TYPE InterfaceType,
+ IN VOID *Interface
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmUninstallProtocolInterface,
+ (
+ IN EFI_HANDLE Handle,
+ IN EFI_GUID *Protocol,
+ IN VOID *Interface
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmHandleProtocol,
+ (
+ IN EFI_HANDLE Handle,
+ IN EFI_GUID *Protocol,
+ OUT VOID **Interface
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmRegisterProtocolNotify,
+ (
+ IN CONST EFI_GUID *Protocol,
+ IN EFI_MM_NOTIFY_FN Function,
+ OUT VOID **Registration
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmLocateHandle,
+ (
+ IN EFI_LOCATE_SEARCH_TYPE SearchType,
+ IN EFI_GUID *Protocol,
+ IN VOID *SearchKey,
+ IN OUT UINTN *BufferSize,
+ OUT EFI_HANDLE *Buffer
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmLocateProtocol,
+ (
+ IN EFI_GUID *Protocol,
+ IN VOID *Registration OPTIONAL,
+ OUT VOID **Interface
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmiManage,
+ (
+ IN CONST EFI_GUID *HandlerType,
+ IN CONST VOID *Context,
+ IN OUT VOID *CommBuffer,
+ IN OUT UINTN *CommBufferSize
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmInterruptRegister,
+ (
+ IN EFI_SMM_HANDLER_ENTRY_POINT2 Handler,
+ IN CONST EFI_GUID *HandlerType,
+ OUT EFI_HANDLE *DispatchHandle
+ )
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gSmst_SmmInterruptUnRegister,
+ (
+ IN EFI_HANDLE DispatchHandle
+ )
+ );
+};
+
+#endif
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiBootServicesTableLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiBootServicesTableLib.h
new file mode 100644
index 000000000000..dd3276635404
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiBootServicesTableLib.h
@@ -0,0 +1,78 @@
+/** @file
+ Google Test mocks for UefiBootServicesTableLib
+
+ Copyright (c) Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_UEFI_BOOT_SERVICES_TABLE_LIB_H_
+#define MOCK_UEFI_BOOT_SERVICES_TABLE_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+extern "C" {
+ #include <Uefi.h>
+ #include <Library/UefiBootServicesTableLib.h>
+}
+
+//
+// Declarations to handle usage of the UefiBootServiceTableLib by creating mock
+//
+struct MockUefiBootServicesTableLib {
+ MOCK_INTERFACE_DECLARATION (MockUefiBootServicesTableLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gBS_GetMemoryMap,
+ (IN OUT UINTN *MemoryMapSize,
+ OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
+ OUT UINTN *MapKey,
+ OUT UINTN *DescriptorSize,
+ OUT UINT32 *DescriptorVersion)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gBS_CreateEvent,
+ (IN UINT32 Type,
+ IN EFI_TPL NotifyTpl,
+ IN EFI_EVENT_NOTIFY NotifyFunction,
+ IN VOID *NotifyContext,
+ OUT EFI_EVENT *Event)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gBS_CloseEvent,
+ (IN EFI_EVENT Event)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gBS_HandleProtocol,
+ (IN EFI_HANDLE Handle,
+ IN EFI_GUID *Protocol,
+ OUT VOID **Interface)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gBS_LocateProtocol,
+ (IN EFI_GUID *Protocol,
+ IN VOID *Registration OPTIONAL,
+ OUT VOID **Interface)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gBS_CreateEventEx,
+ (IN UINT32 Type,
+ IN EFI_TPL NotifyTpl,
+ IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL,
+ IN CONST VOID *NotifyContext OPTIONAL,
+ IN CONST EFI_GUID *EventGroup OPTIONAL,
+ OUT EFI_EVENT *Event)
+ );
+};
+
+#endif // MOCK_UEFI_BOOT_SERVICES_TABLE_LIB_H_
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h
new file mode 100644
index 000000000000..5785c6808621
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h
@@ -0,0 +1,373 @@
+/** @file
+ Google Test mocks for UefiLib
+
+ Copyright (c) 2022, Intel Corporation. All rights reserved.
+ Copyright (c) Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_UEFI_LIB_H_
+#define MOCK_UEFI_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+extern "C" {
+ #include <Uefi.h>
+ #include <Library/UefiLib.h>
+}
+
+struct MockUefiLib {
+ MOCK_INTERFACE_DECLARATION (MockUefiLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiGetSystemConfigurationTable,
+ (IN EFI_GUID *TableGuid,
+ OUT VOID **Table)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_EVENT,
+ EfiCreateProtocolNotifyEvent,
+ (IN EFI_GUID *ProtocolGuid,
+ IN EFI_TPL NotifyTpl,
+ IN EFI_EVENT_NOTIFY NotifyFunction,
+ IN VOID *NotifyContext OPTIONAL,
+ OUT VOID **Registration)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiNamedEventListen,
+ (IN CONST EFI_GUID *Name,
+ IN EFI_TPL NotifyTpl,
+ IN EFI_EVENT_NOTIFY NotifyFunction,
+ IN CONST VOID *NotifyContext OPTIONAL,
+ OUT VOID *Registration OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiNamedEventSignal,
+ (IN CONST EFI_GUID *Name)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiEventGroupSignal,
+ (IN CONST EFI_GUID *EventGroup)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ EfiEventEmptyFunction,
+ (IN EFI_EVENT Event,
+ IN VOID *Context)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_TPL,
+ EfiGetCurrentTpl,
+ ()
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_LOCK *,
+ EfiInitializeLock,
+ (IN OUT EFI_LOCK *Lock,
+ IN EFI_TPL Priority)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ EfiAcquireLock,
+ (IN EFI_LOCK *Lock)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiAcquireLockOrFail,
+ (IN EFI_LOCK *Lock)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ EfiReleaseLock,
+ (IN EFI_LOCK *Lock)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiTestManagedDevice,
+ (IN CONST EFI_HANDLE ControllerHandle,
+ IN CONST EFI_HANDLE DriverBindingHandle,
+ IN CONST EFI_GUID *ProtocolGuid)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiTestChildHandle,
+ (IN CONST EFI_HANDLE ControllerHandle,
+ IN CONST EFI_HANDLE ChildHandle,
+ IN CONST EFI_GUID *ProtocolGuid)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ IsLanguageSupported,
+ (IN CONST CHAR8 *SupportedLanguages,
+ IN CONST CHAR8 *TargetLanguage)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ LookupUnicodeString,
+ (IN CONST CHAR8 *Language,
+ IN CONST CHAR8 *SupportedLanguages,
+ IN CONST EFI_UNICODE_STRING_TABLE *UnicodeStringTable,
+ OUT CHAR16 **UnicodeString)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ LookupUnicodeString2,
+ (IN CONST CHAR8 *Language,
+ IN CONST CHAR8 *SupportedLanguages,
+ IN CONST EFI_UNICODE_STRING_TABLE *UnicodeStringTable,
+ OUT CHAR16 **UnicodeString,
+ IN BOOLEAN Iso639Language)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ AddUnicodeString,
+ (IN CONST CHAR8 *Language,
+ IN CONST CHAR8 *SupportedLanguages,
+ IN OUT EFI_UNICODE_STRING_TABLE **UnicodeStringTable,
+ IN CONST CHAR16 *UnicodeString)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ AddUnicodeString2,
+ (IN CONST CHAR8 *Language,
+ IN CONST CHAR8 *SupportedLanguages,
+ IN OUT EFI_UNICODE_STRING_TABLE **UnicodeStringTable,
+ IN CONST CHAR16 *UnicodeString,
+ IN BOOLEAN Iso639Language)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ FreeUnicodeStringTable,
+ (IN EFI_UNICODE_STRING_TABLE *UnicodeStringTable)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ GetVariable2,
+ (IN CONST CHAR16 *Name,
+ IN CONST EFI_GUID *Guid,
+ OUT VOID **Value,
+ OUT UINTN *Size OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ GetEfiGlobalVariable2,
+ (IN CONST CHAR16 *Name,
+ OUT VOID **Value,
+ OUT UINTN *Size OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ GetVariable3,
+ (IN CONST CHAR16 *Name,
+ IN CONST EFI_GUID *Guid,
+ OUT VOID **Value,
+ OUT UINTN *Size OPTIONAL,
+ OUT UINT32 *Attr OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINTN,
+ GetGlyphWidth,
+ (IN CHAR16 UnicodeChar)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ UINTN,
+ UnicodeStringDisplayLength,
+ (IN CONST CHAR16 *String)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ EfiSignalEventReadyToBoot,
+ ()
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ EfiSignalEventLegacyBoot,
+ ()
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiCreateEventLegacyBoot,
+ (OUT EFI_EVENT *LegacyBootEvent)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiCreateEventLegacyBootEx,
+ (IN EFI_TPL NotifyTpl,
+ IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL,
+ IN VOID *NotifyContext OPTIONAL,
+ OUT EFI_EVENT *LegacyBootEvent)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiCreateEventReadyToBoot,
+ (OUT EFI_EVENT *ReadyToBootEvent)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiCreateEventReadyToBootEx,
+ (IN EFI_TPL NotifyTpl,
+ IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL,
+ IN VOID *NotifyContext OPTIONAL,
+ OUT EFI_EVENT *ReadyToBootEvent)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ VOID,
+ EfiInitializeFwVolDevicepathNode,
+ (IN OUT MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvDevicePathNode,
+ IN CONST EFI_GUID *NameGuid)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_GUID *,
+ EfiGetNameGuidFromFwVolDevicePathNode,
+ (IN CONST MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvDevicePathNode)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiLibInstallDriverBinding,
+ (IN CONST EFI_HANDLE ImageHandle,
+ IN CONST EFI_SYSTEM_TABLE *SystemTable,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiLibUninstallDriverBinding,
+ (IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiLibInstallAllDriverProtocols,
+ (IN CONST EFI_HANDLE ImageHandle,
+ IN CONST EFI_SYSTEM_TABLE *SystemTable,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL,
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL,
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiLibUninstallAllDriverProtocols,
+ (IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL,
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL,
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiLibInstallDriverBindingComponentName2,
+ (IN CONST EFI_HANDLE ImageHandle,
+ IN CONST EFI_SYSTEM_TABLE *SystemTable,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL,
+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiLibUninstallDriverBindingComponentName2,
+ (IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL,
+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiLibInstallAllDriverProtocols2,
+ (IN CONST EFI_HANDLE ImageHandle,
+ IN CONST EFI_SYSTEM_TABLE *SystemTable,
+ IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN EFI_HANDLE DriverBindingHandle,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL,
+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL,
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL,
+ IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2 OPTIONAL,
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL,
+ IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiLibUninstallAllDriverProtocols2,
+ (IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding,
+ IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL,
+ IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL,
+ IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL,
+ IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2 OPTIONAL,
+ IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL,
+ IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiLocateProtocolBuffer,
+ (IN EFI_GUID *Protocol,
+ OUT UINTN *NoProtocols,
+ OUT VOID ***Buffer)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ EfiOpenFileByDevicePath,
+ (IN OUT EFI_DEVICE_PATH_PROTOCOL **FilePath,
+ OUT EFI_FILE_PROTOCOL **File,
+ IN UINT64 OpenMode,
+ IN UINT64 Attributes)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_ACPI_COMMON_HEADER *,
+ EfiLocateNextAcpiTable,
+ (IN UINT32 Signature,
+ IN EFI_ACPI_COMMON_HEADER *PreviousTable OPTIONAL)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_ACPI_COMMON_HEADER *,
+ EfiLocateFirstAcpiTable,
+ (IN UINT32 Signature)
+ );
+};
+
+#endif
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiRuntimeServicesTableLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiRuntimeServicesTableLib.h
new file mode 100644
index 000000000000..818fa3ea071d
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiRuntimeServicesTableLib.h
@@ -0,0 +1,49 @@
+/** @file
+ Google Test mocks for UefiRuntimeServicesTableLib
+
+ Copyright (c) 2022, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_UEFI_RUNTIME_SERVICES_TABLE_LIB_H_
+#define MOCK_UEFI_RUNTIME_SERVICES_TABLE_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+extern "C" {
+ #include <Uefi.h>
+ #include <Library/UefiRuntimeServicesTableLib.h>
+}
+
+struct MockUefiRuntimeServicesTableLib {
+ MOCK_INTERFACE_DECLARATION (MockUefiRuntimeServicesTableLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gRT_GetVariable,
+ (IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ OUT UINT32 *Attributes OPTIONAL,
+ IN OUT UINTN *DataSize,
+ OUT VOID *Data)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gRT_SetVariable,
+ (IN CHAR16 *VariableName,
+ IN EFI_GUID *VendorGuid,
+ IN UINT32 Attributes,
+ IN UINTN DataSize,
+ IN VOID *Data)
+ );
+
+ MOCK_FUNCTION_DECLARATION (
+ EFI_STATUS,
+ gRT_GetTime,
+ (OUT EFI_TIME *Time,
+ OUT EFI_TIME_CAPABILITIES *Capabilities OPTIONAL)
+ );
+};
+
+#endif