]> xenbits.xensource.com Git - ovmf.git/commitdiff
MdePkg: Add more HobLib/PeiServicesLib gmock support
authorGua Guo <gua.guo@intel.com>
Mon, 8 May 2023 23:58:14 +0000 (07:58 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 10 May 2023 00:39:13 +0000 (00:39 +0000)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4443

Add Google Mock Library for HobLib
Add Google Mock Library for PeiServicesLib

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Chris Johnson <chris.n.johnson@intel.com>
Signed-off-by: Gua Guo <gua.guo@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
MdePkg/Test/MdePkgHostTest.dsc
MdePkg/Test/Mock/Include/GoogleTest/Library/MockHobLib.h [new file with mode: 0644]
MdePkg/Test/Mock/Include/GoogleTest/Library/MockPeiServicesLib.h [new file with mode: 0644]
MdePkg/Test/Mock/Library/GoogleTest/MockHobLib/MockHobLib.cpp [new file with mode: 0644]
MdePkg/Test/Mock/Library/GoogleTest/MockHobLib/MockHobLib.inf [new file with mode: 0644]
MdePkg/Test/Mock/Library/GoogleTest/MockPeiServicesLib/MockPeiServicesLib.cpp [new file with mode: 0644]
MdePkg/Test/Mock/Library/GoogleTest/MockPeiServicesLib/MockPeiServicesLib.inf [new file with mode: 0644]

index 35e3ef6d9729a8a92d39d4612b7a1ea91179ff5d..529ea690240bf500bc87f867fdf22a63ccec1325 100644 (file)
@@ -36,3 +36,5 @@
   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
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockHobLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockHobLib.h
new file mode 100644 (file)
index 0000000..994b813
--- /dev/null
@@ -0,0 +1,150 @@
+/** @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
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPeiServicesLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockPeiServicesLib.h
new file mode 100644 (file)
index 0000000..4a99fec
--- /dev/null
@@ -0,0 +1,189 @@
+/** @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
diff --git a/MdePkg/Test/Mock/Library/GoogleTest/MockHobLib/MockHobLib.cpp b/MdePkg/Test/Mock/Library/GoogleTest/MockHobLib/MockHobLib.cpp
new file mode 100644 (file)
index 0000000..5a5a915
--- /dev/null
@@ -0,0 +1,30 @@
+/** @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
diff --git a/MdePkg/Test/Mock/Library/GoogleTest/MockHobLib/MockHobLib.inf b/MdePkg/Test/Mock/Library/GoogleTest/MockHobLib/MockHobLib.inf
new file mode 100644 (file)
index 0000000..79e6c8a
--- /dev/null
@@ -0,0 +1,33 @@
+## @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
diff --git a/MdePkg/Test/Mock/Library/GoogleTest/MockPeiServicesLib/MockPeiServicesLib.cpp b/MdePkg/Test/Mock/Library/GoogleTest/MockPeiServicesLib/MockPeiServicesLib.cpp
new file mode 100644 (file)
index 0000000..9a7ff4b
--- /dev/null
@@ -0,0 +1,36 @@
+/** @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
diff --git a/MdePkg/Test/Mock/Library/GoogleTest/MockPeiServicesLib/MockPeiServicesLib.inf b/MdePkg/Test/Mock/Library/GoogleTest/MockPeiServicesLib/MockPeiServicesLib.inf
new file mode 100644 (file)
index 0000000..941a4dd
--- /dev/null
@@ -0,0 +1,32 @@
+## @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