MdePkg/Library/BaseLib/UnitTestHostBaseLib.inf\r
MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.inf\r
MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib/MockUefiRuntimeServicesTableLib.inf\r
+ MdePkg/Test/Mock/Library/GoogleTest/MockPeiServicesLib/MockPeiServicesLib.inf\r
+ MdePkg/Test/Mock/Library/GoogleTest/MockHobLib/MockHobLib.inf\r
--- /dev/null
+/** @file\r
+ Google Test mocks for HobLib\r
+\r
+ Copyright (c) 2023, Intel Corporation. All rights reserved.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+\r
+#ifndef MOCK_HOB_LIB_H_\r
+#define MOCK_HOB_LIB_H_\r
+\r
+#include <Library/GoogleTestLib.h>\r
+#include <Library/FunctionMockLib.h>\r
+extern "C" {\r
+#include <Pi/PiMultiPhase.h>\r
+#include <Uefi.h>\r
+#include <Library/HobLib.h>\r
+}\r
+\r
+struct MockHobLib {\r
+ MOCK_INTERFACE_DECLARATION (MockHobLib);\r
+\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID *,\r
+ GetHobList,\r
+ ()\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID *,\r
+ GetNextHob,\r
+ (IN UINT16 Type,\r
+ IN CONST VOID *HobStart)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID *,\r
+ GetFirstHob,\r
+ (IN UINT16 Type)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID *,\r
+ GetNextGuidHob,\r
+ (IN CONST EFI_GUID *Guid,\r
+ IN CONST VOID *HobStart)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID *,\r
+ GetFirstGuidHob,\r
+ (IN CONST EFI_GUID *Guid)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_BOOT_MODE,\r
+ GetBootModeHob,\r
+ ()\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildModuleHob,\r
+ (IN CONST EFI_GUID *ModuleName,\r
+ IN EFI_PHYSICAL_ADDRESS MemoryAllocationModule,\r
+ IN UINT64 ModuleLength,\r
+ IN EFI_PHYSICAL_ADDRESS EntryPoint)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildResourceDescriptorWithOwnerHob,\r
+ (IN EFI_RESOURCE_TYPE ResourceType,\r
+ IN EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute,\r
+ IN EFI_PHYSICAL_ADDRESS PhysicalStart,\r
+ IN UINT64 NumberOfBytes,\r
+ IN EFI_GUID *OwnerGUID)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildResourceDescriptorHob,\r
+ (IN EFI_RESOURCE_TYPE ResourceType,\r
+ IN EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttribute,\r
+ IN EFI_PHYSICAL_ADDRESS PhysicalStart,\r
+ IN UINT64 NumberOfBytes)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID *,\r
+ BuildGuidHob,\r
+ (IN CONST EFI_GUID *Guid,\r
+ IN UINTN DataLength)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID *,\r
+ BuildGuidDataHob,\r
+ (IN CONST EFI_GUID *Guid,\r
+ IN VOID *Data,\r
+ IN UINTN DataLength)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildFvHob,\r
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
+ IN UINT64 Length)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildFv2Hob,\r
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
+ IN UINT64 Length,\r
+ IN CONST EFI_GUID *FvName,\r
+ IN CONST EFI_GUID *FileName)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildFv3Hob,\r
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
+ IN UINT64 Length,\r
+ IN UINT32 AuthenticationStatus,\r
+ IN BOOLEAN ExtractedFv,\r
+ IN CONST EFI_GUID *FvName OPTIONAL,\r
+ IN CONST EFI_GUID *FileName OPTIONAL)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildCvHob,\r
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
+ IN UINT64 Length)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildCpuHob,\r
+ (IN UINT8 SizeOfMemorySpace,\r
+ IN UINT8 SizeOfIoSpace)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildStackHob,\r
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
+ IN UINT64 Length)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildBspStoreHob,\r
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
+ IN UINT64 Length,\r
+ IN EFI_MEMORY_TYPE MemoryType)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ BuildMemoryAllocationHob,\r
+ (IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
+ IN UINT64 Length,\r
+ IN EFI_MEMORY_TYPE MemoryType)\r
+ );\r
+};\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ Google Test mocks for PeiServicesLib\r
+\r
+ Copyright (c) 2023, Intel Corporation. All rights reserved.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+\r
+#ifndef MOCK_PEI_SERVICES_LIB_H_\r
+#define MOCK_PEI_SERVICES_LIB_H_\r
+\r
+#include <Library/GoogleTestLib.h>\r
+#include <Library/FunctionMockLib.h>\r
+extern "C" {\r
+#include <PiPei.h>\r
+#include <Uefi.h>\r
+#include <Library/PeiServicesLib.h>\r
+}\r
+\r
+struct MockPeiServicesLib {\r
+ MOCK_INTERFACE_DECLARATION (MockPeiServicesLib);\r
+\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesInstallPpi,\r
+ (IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesReInstallPpi,\r
+ (IN CONST EFI_PEI_PPI_DESCRIPTOR *OldPpi,\r
+ IN CONST EFI_PEI_PPI_DESCRIPTOR *NewPpi)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesLocatePpi,\r
+ (IN CONST EFI_GUID *Guid,\r
+ IN UINTN Instance,\r
+ IN OUT EFI_PEI_PPI_DESCRIPTOR **PpiDescriptor OPTIONAL,\r
+ IN OUT VOID **Ppi)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesNotifyPpi,\r
+ (IN CONST EFI_PEI_NOTIFY_DESCRIPTOR *NotifyList)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesGetBootMode,\r
+ (OUT EFI_BOOT_MODE *BootMode)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesSetBootMode,\r
+ (IN EFI_BOOT_MODE BootMode)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesGetHobList,\r
+ (OUT VOID **HobList)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesCreateHob,\r
+ (IN UINT16 Type,\r
+ IN UINT16 Length,\r
+ OUT VOID **Hob)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesFfsFindNextVolume,\r
+ (IN UINTN Instance,\r
+ IN OUT EFI_PEI_FV_HANDLE *VolumeHandle)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesFfsFindNextFile,\r
+ (IN EFI_FV_FILETYPE SearchType,\r
+ IN EFI_PEI_FV_HANDLE VolumeHandle,\r
+ IN OUT EFI_PEI_FILE_HANDLE *FileHandle)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesFfsFindSectionData,\r
+ (IN EFI_SECTION_TYPE SectionType,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT VOID **SectionData)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesFfsFindSectionData3,\r
+ (IN EFI_SECTION_TYPE SectionType,\r
+ IN UINTN SectionInstance,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT VOID **SectionData,\r
+ OUT UINT32 *AuthenticationStatus)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesInstallPeiMemory,\r
+ (IN EFI_PHYSICAL_ADDRESS MemoryBegin,\r
+ IN UINT64 MemoryLength)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesAllocatePages,\r
+ (IN EFI_MEMORY_TYPE MemoryType,\r
+ IN UINTN Pages,\r
+ OUT EFI_PHYSICAL_ADDRESS *Memory)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesFreePages,\r
+ (IN EFI_PHYSICAL_ADDRESS Memory,\r
+ IN UINTN Pages)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesAllocatePool,\r
+ (IN UINTN Size,\r
+ OUT VOID **Buffer)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesResetSystem,\r
+ ()\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesFfsFindFileByName,\r
+ (IN CONST EFI_GUID *FileName,\r
+ IN CONST EFI_PEI_FV_HANDLE VolumeHandle,\r
+ OUT EFI_PEI_FILE_HANDLE *FileHandle)\r
+ );\r
+\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesFfsGetFileInfo,\r
+ (IN CONST EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT EFI_FV_FILE_INFO *FileInfo)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesFfsGetFileInfo2,\r
+ (IN CONST EFI_PEI_FILE_HANDLE FileHandle,\r
+ OUT EFI_FV_FILE_INFO2 *FileInfo)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesFfsGetVolumeInfo,\r
+ (IN EFI_PEI_FV_HANDLE VolumeHandle,\r
+ OUT EFI_FV_INFO *VolumeInfo)\r
+ );\r
+\r
+ MOCK_FUNCTION_DECLARATION (\r
+ EFI_STATUS,\r
+ PeiServicesRegisterForShadow,\r
+ (IN EFI_PEI_FILE_HANDLE FileHandle)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ PeiServicesInstallFvInfoPpi,\r
+ (IN CONST EFI_GUID *FvFormat OPTIONAL,\r
+ IN CONST VOID *FvInfo,\r
+ IN UINT32 FvInfoSize,\r
+ IN CONST EFI_GUID *ParentFvName OPTIONAL,\r
+ IN CONST EFI_GUID *ParentFileName OPTIONAL)\r
+ );\r
+\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ PeiServicesInstallFvInfo2Ppi,\r
+ (IN CONST EFI_GUID *FvFormat OPTIONAL,\r
+ IN CONST VOID *FvInfo,\r
+ IN UINT32 FvInfoSize,\r
+ IN CONST EFI_GUID *ParentFvName OPTIONAL,\r
+ IN CONST EFI_GUID *ParentFileName OPTIONAL,\r
+ IN UINT32 AuthenticationStatus)\r
+ );\r
+ MOCK_FUNCTION_DECLARATION (\r
+ VOID,\r
+ PeiServicesResetSystem2,\r
+ (IN EFI_RESET_TYPE ResetType,\r
+ IN EFI_STATUS ResetStatus,\r
+ IN UINTN DataSize,\r
+ IN VOID *ResetData OPTIONAL)\r
+ );\r
+};\r
+\r
+#endif\r
--- /dev/null
+/** @file\r
+ Google Test mocks for HobLib\r
+\r
+ Copyright (c) 2023, Intel Corporation. All rights reserved.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+\r
+#include <GoogleTest/Library/MockHobLib.h>\r
+\r
+MOCK_INTERFACE_DEFINITION(MockHobLib);\r
+\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, GetHobList, 0, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, GetNextHob, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, GetFirstHob, 1, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, GetNextGuidHob, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, GetFirstGuidHob, 1, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, GetBootModeHob, 0, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildModuleHob, 4, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildResourceDescriptorWithOwnerHob, 5, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildResourceDescriptorHob, 4, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildGuidHob, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildGuidDataHob, 3, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildFvHob, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildFv2Hob, 4, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildFv3Hob, 6, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildCvHob, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildCpuHob, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildStackHob, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildBspStoreHob, 3, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockHobLib, BuildMemoryAllocationHob, 3, EFIAPI);\r
--- /dev/null
+## @file\r
+# Google Test mocks for HobLib\r
+#\r
+# Copyright (c) 2023, Intel Corporation. All rights reserved.\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
+##\r
+\r
+[Defines]\r
+ INF_VERSION = 0x00010005\r
+ BASE_NAME = MockHobLib\r
+ FILE_GUID = 44E3D5AA-7225-4A70-B1B7-0D02C44F0690\r
+ MODULE_TYPE = HOST_APPLICATION\r
+ VERSION_STRING = 1.0\r
+ LIBRARY_CLASS = HobLib\r
+\r
+#\r
+# The following information is for reference only and not required by the build tools.\r
+#\r
+# VALID_ARCHITECTURES = IA32 X64\r
+#\r
+\r
+[Sources]\r
+ MockHobLib.cpp\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+ UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec\r
+\r
+[LibraryClasses]\r
+ GoogleTestLib\r
+\r
+[BuildOptions]\r
+ MSFT:*_*_*_CC_FLAGS = /EHsc\r
--- /dev/null
+/** @file\r
+ Google Test mocks for PeiServicesLib\r
+\r
+ Copyright (c) 2023, Intel Corporation. All rights reserved.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+\r
+#include <GoogleTest/Library/MockPeiServicesLib.h>\r
+\r
+MOCK_INTERFACE_DEFINITION(MockPeiServicesLib);\r
+\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesInstallPpi, 1, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesReInstallPpi, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesLocatePpi, 4, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesNotifyPpi, 1, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesGetBootMode, 1, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesSetBootMode, 1, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesGetHobList, 1, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesCreateHob, 3, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesFfsFindNextVolume, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesFfsFindNextFile, 3, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesFfsFindSectionData, 3, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesFfsFindSectionData3, 5, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesInstallPeiMemory, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesAllocatePages, 3, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesFreePages, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesAllocatePool, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesResetSystem, 0, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesFfsFindFileByName, 3, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesFfsGetFileInfo, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesFfsGetFileInfo2, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesFfsGetVolumeInfo, 2, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesRegisterForShadow, 1, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesInstallFvInfoPpi, 5, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesInstallFvInfo2Ppi, 6, EFIAPI);\r
+MOCK_FUNCTION_DEFINITION(MockPeiServicesLib, PeiServicesResetSystem2, 4, EFIAPI);\r
--- /dev/null
+## @file\r
+# Mock PEI Services Library implementation.\r
+#\r
+# Copyright (c) 2023, Intel Corporation. All rights reserved.\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
+##\r
+\r
+[Defines]\r
+ INF_VERSION = 0x00010005\r
+ BASE_NAME = MockPeiServicesLib\r
+ FILE_GUID = FC944493-C0C0-482D-A1CC-72CE12C4BEEA\r
+ MODULE_TYPE = HOST_APPLICATION\r
+ VERSION_STRING = 1.0\r
+ LIBRARY_CLASS = PeiServicesLib\r
+ PI_SPECIFICATION_VERSION = 0x0001000A\r
+\r
+#\r
+# VALID_ARCHITECTURES = IA32 X64\r
+#\r
+\r
+[Sources]\r
+ MockPeiServicesLib.cpp\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+ UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec\r
+\r
+[LibraryClasses]\r
+ GoogleTestLib\r
+\r
+[BuildOptions]\r
+ MSFT:*_*_*_CC_FLAGS = /EHsc\r