Skip to content

Commit d29ed8f

Browse files
VivianNKapop5v-bhavanisuos-dTsunFeng
committed
MdePkg: Added gmocks for GoogleTest
Various libraries and protocols mocked. Including: - PcdLib - PciIo - SmmBase2 - Smbio - UsbIo - NvmExpressPassthru - IsaHc - ServiceBinding - DebugPort - MockUefiDevicePathLib - PcdLib Additionally, existing mocks had more functions added. The cpp files for mock protocols MockHash2 and MockRng were removed and the logic was moved to the header files. Any test consuming these mock protocols will need to update their inf to remove the cpp file as a source. Co-authored-by: Aaron Pop <[email protected]> Co-authored-by: Bhavani Subramanian <[email protected]> Co-authored-by: Oliver Smith-Denny <[email protected]> Co-authored-by: TsunFeng <[email protected]> Co-authored-by: Vivian Nowka-Keane <[email protected]> Co-authored-by: yhsu3 <[email protected]> Signed-off-by: Vivian Nowka-Keane <[email protected]>
1 parent 0bcee06 commit d29ed8f

File tree

59 files changed

+4966
-165
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+4966
-165
lines changed

MdePkg/Test/MdePkgHostTest.dsc

+11
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,14 @@
5555
MdePkg/Test/Mock/Library/GoogleTest/MockSafeIntLib/MockSafeIntLib.inf
5656

5757
MdePkg/Library/StackCheckLibNull/StackCheckLibNullHostApplication.inf
58+
MdePkg/Test/Mock/Library/GoogleTest/MockIoLib/MockIoLib.inf
59+
MdePkg/Test/Mock/Library/GoogleTest/MockSmmServicesTableLib/MockSmmServicesTableLib.inf
60+
MdePkg/Test/Mock/Library/GoogleTest/MockMmServicesTableLib/MockMmServicesTableLib.inf
61+
MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeLib/MockUefiRuntimeLib.inf
62+
MdePkg/Test/Mock/Library/GoogleTest/MockMemoryAllocationLib/MockMemoryAllocationLib.inf
63+
MdePkg/Test/Mock/Library/GoogleTest/MockPciExpressLib/MockPciExpressLib.inf
64+
MdePkg/Test/Mock/Library/GoogleTest/MockDevicePathLib/MockDevicePathLib.inf
65+
MdePkg/Test/Mock/Library/GoogleTest/MockDxeServicesTableLib/MockDxeServicesTableLib.inf
66+
MdePkg/Test/Mock/Library/GoogleTest/MockPciLib/MockPciLib.inf
67+
MdePkg/Test/Mock/Library/GoogleTest/MockPcdLib/MockPcdLib.inf
68+
MdePkg/Test/Mock/Library/GoogleTest/MockTimerLib/MockTimerLib.inf
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
/** @file MockDevicePathLib.h
2+
Google Test mocks for DevicePathLib
3+
4+
Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
5+
Copyright (c) Microsoft Corporation.
6+
SPDX-License-Identifier: BSD-2-Clause-Patent
7+
**/
8+
9+
#ifndef MOCK_DEVICE_PATH_LIB_H_
10+
#define MOCK_DEVICE_PATH_LIB_H_
11+
12+
#include <Library/GoogleTestLib.h>
13+
#include <Library/FunctionMockLib.h>
14+
extern "C" {
15+
#include <PiPei.h>
16+
#include <PiDxe.h>
17+
#include <PiSmm.h>
18+
#include <PiMm.h>
19+
#include <Uefi.h>
20+
#include <Library/DevicePathLib.h>
21+
}
22+
23+
struct MockDevicePathLib {
24+
MOCK_INTERFACE_DECLARATION (MockDevicePathLib);
25+
26+
MOCK_FUNCTION_DECLARATION (
27+
BOOLEAN,
28+
IsDevicePathValid,
29+
(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
30+
IN UINTN MaxSize)
31+
);
32+
33+
MOCK_FUNCTION_DECLARATION (
34+
UINT8,
35+
DevicePathType,
36+
(IN CONST VOID *Node)
37+
);
38+
39+
MOCK_FUNCTION_DECLARATION (
40+
UINT8,
41+
DevicePathSubType,
42+
(IN CONST VOID *Node)
43+
);
44+
45+
MOCK_FUNCTION_DECLARATION (
46+
UINTN,
47+
DevicePathNodeLength,
48+
(IN CONST VOID *Node)
49+
);
50+
51+
MOCK_FUNCTION_DECLARATION (
52+
EFI_DEVICE_PATH_PROTOCOL *,
53+
NextDevicePathNode,
54+
(IN CONST VOID *Node)
55+
);
56+
57+
MOCK_FUNCTION_DECLARATION (
58+
BOOLEAN,
59+
IsDevicePathEndType,
60+
(IN CONST VOID *Node)
61+
);
62+
63+
MOCK_FUNCTION_DECLARATION (
64+
BOOLEAN,
65+
IsDevicePathEnd,
66+
(IN CONST VOID *Node)
67+
);
68+
69+
MOCK_FUNCTION_DECLARATION (
70+
BOOLEAN,
71+
IsDevicePathEndInstance,
72+
(IN CONST VOID *Node)
73+
);
74+
75+
MOCK_FUNCTION_DECLARATION (
76+
UINT16,
77+
SetDevicePathNodeLength,
78+
(IN OUT VOID *Node,
79+
IN UINTN Length)
80+
);
81+
82+
MOCK_FUNCTION_DECLARATION (
83+
VOID,
84+
SetDevicePathEndNode,
85+
(OUT VOID *Node)
86+
);
87+
88+
MOCK_FUNCTION_DECLARATION (
89+
UINTN,
90+
GetDevicePathSize,
91+
(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
92+
);
93+
94+
MOCK_FUNCTION_DECLARATION (
95+
EFI_DEVICE_PATH_PROTOCOL *,
96+
DuplicateDevicePath,
97+
(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
98+
);
99+
100+
MOCK_FUNCTION_DECLARATION (
101+
EFI_DEVICE_PATH_PROTOCOL *,
102+
AppendDevicePath,
103+
(IN CONST EFI_DEVICE_PATH_PROTOCOL *FirstDevicePath OPTIONAL,
104+
IN CONST EFI_DEVICE_PATH_PROTOCOL *SecondDevicePath OPTIONAL)
105+
);
106+
107+
MOCK_FUNCTION_DECLARATION (
108+
EFI_DEVICE_PATH_PROTOCOL *,
109+
AppendDevicePathNode,
110+
(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL,
111+
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathNode OPTIONAL)
112+
);
113+
114+
MOCK_FUNCTION_DECLARATION (
115+
EFI_DEVICE_PATH_PROTOCOL *,
116+
AppendDevicePathInstance,
117+
(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath OPTIONAL,
118+
IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance OPTIONAL)
119+
);
120+
121+
MOCK_FUNCTION_DECLARATION (
122+
EFI_DEVICE_PATH_PROTOCOL *,
123+
GetNextDevicePathInstance,
124+
(IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
125+
OUT UINTN *Size)
126+
);
127+
128+
MOCK_FUNCTION_DECLARATION (
129+
EFI_DEVICE_PATH_PROTOCOL *,
130+
CreateDeviceNode,
131+
(IN UINT8 NodeType,
132+
IN UINT8 NodeSubType,
133+
IN UINT16 NodeLength)
134+
);
135+
136+
MOCK_FUNCTION_DECLARATION (
137+
BOOLEAN,
138+
IsDevicePathMultiInstance,
139+
(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath)
140+
);
141+
142+
MOCK_FUNCTION_DECLARATION (
143+
EFI_DEVICE_PATH_PROTOCOL *,
144+
DevicePathFromHandle,
145+
(IN EFI_HANDLE Handle)
146+
);
147+
148+
MOCK_FUNCTION_DECLARATION (
149+
EFI_DEVICE_PATH_PROTOCOL *,
150+
FileDevicePath,
151+
(IN EFI_HANDLE Device OPTIONAL,
152+
IN CONST CHAR16 *FileName)
153+
);
154+
155+
MOCK_FUNCTION_DECLARATION (
156+
CHAR16 *,
157+
ConvertDevicePathToText,
158+
(IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
159+
IN BOOLEAN DisplayOnly,
160+
IN BOOLEAN AllowShortcuts)
161+
);
162+
163+
MOCK_FUNCTION_DECLARATION (
164+
CHAR16 *,
165+
ConvertDeviceNodeToText,
166+
(IN CONST EFI_DEVICE_PATH_PROTOCOL *DeviceNode,
167+
IN BOOLEAN DisplayOnly,
168+
IN BOOLEAN AllowShortcuts)
169+
);
170+
171+
MOCK_FUNCTION_DECLARATION (
172+
EFI_DEVICE_PATH_PROTOCOL *,
173+
ConvertTextToDeviceNode,
174+
(IN CONST CHAR16 *TextDeviceNode)
175+
);
176+
177+
MOCK_FUNCTION_DECLARATION (
178+
EFI_DEVICE_PATH_PROTOCOL *,
179+
ConvertTextToDevicePath,
180+
(IN CONST CHAR16 *TextDevicePath)
181+
);
182+
};
183+
184+
#endif // MOCK_DEVICE_PATH_LIB_H_
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
/** @file MockDxeServicesTableLib.h
2+
Google Test mocks for DxeServicesTableLib
3+
4+
Copyright (c) Microsoft Corporation.
5+
SPDX-License-Identifier: BSD-2-Clause-Patent
6+
**/
7+
8+
#ifndef MOCK_DXE_SERVICES_TABLE_LIB_H_
9+
#define MOCK_DXE_SERVICES_TABLE_LIB_H_
10+
11+
#include <Library/GoogleTestLib.h>
12+
#include <Library/FunctionMockLib.h>
13+
extern "C" {
14+
#include <Uefi.h>
15+
#include <Pi/PiDxeCis.h>
16+
}
17+
18+
//
19+
// Declarations to handle usage of the DxeServicesTableLib by creating mock
20+
//
21+
struct MockDxeServicesTableLib {
22+
MOCK_INTERFACE_DECLARATION (MockDxeServicesTableLib);
23+
24+
MOCK_FUNCTION_DECLARATION (
25+
EFI_STATUS,
26+
AddMemorySpace,
27+
(IN EFI_GCD_MEMORY_TYPE GcdMemoryType,
28+
IN EFI_PHYSICAL_ADDRESS BaseAddress,
29+
IN UINT64 Length,
30+
IN UINT64 Capabilities)
31+
);
32+
33+
MOCK_FUNCTION_DECLARATION (
34+
EFI_STATUS,
35+
AllocateMemorySpace,
36+
(IN EFI_GCD_ALLOCATE_TYPE AllocateType,
37+
IN EFI_GCD_MEMORY_TYPE GcdMemoryType,
38+
IN UINT64 BaseAddress,
39+
IN UINT64 Length,
40+
IN EFI_GUID *ImageHandle,
41+
IN EFI_GUID *DeviceHandle)
42+
);
43+
44+
MOCK_FUNCTION_DECLARATION (
45+
EFI_STATUS,
46+
FreeMemorySpace,
47+
(IN EFI_PHYSICAL_ADDRESS BaseAddress,
48+
IN UINT64 Length)
49+
);
50+
51+
MOCK_FUNCTION_DECLARATION (
52+
EFI_STATUS,
53+
RemoveMemorySpace,
54+
(IN EFI_PHYSICAL_ADDRESS BaseAddress,
55+
IN UINT64 Length)
56+
);
57+
58+
MOCK_FUNCTION_DECLARATION (
59+
EFI_STATUS,
60+
GetMemorySpaceDescriptor,
61+
(IN EFI_PHYSICAL_ADDRESS BaseAddress,
62+
OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Descriptor)
63+
);
64+
65+
MOCK_FUNCTION_DECLARATION (
66+
EFI_STATUS,
67+
SetMemorySpaceAttributes,
68+
(IN EFI_PHYSICAL_ADDRESS BaseAddress,
69+
IN UINT64 Length,
70+
IN UINT64 Attributes)
71+
);
72+
73+
MOCK_FUNCTION_DECLARATION (
74+
EFI_STATUS,
75+
GetMemorySpaceMap,
76+
(IN OUT UINTN *NumberOfDescriptors,
77+
OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR **MemorySpaceMap)
78+
);
79+
80+
MOCK_FUNCTION_DECLARATION (
81+
EFI_STATUS,
82+
AddIoSpace,
83+
(IN EFI_GCD_IO_TYPE GcdIoType,
84+
IN EFI_PHYSICAL_ADDRESS BaseAddress,
85+
IN UINT64 Length)
86+
);
87+
88+
MOCK_FUNCTION_DECLARATION (
89+
EFI_STATUS,
90+
AllocateIoSpace,
91+
(IN EFI_GCD_ALLOCATE_TYPE AllocateType,
92+
IN EFI_GCD_IO_TYPE GcdIoType,
93+
IN UINT64 BaseAddress,
94+
IN UINT64 Length,
95+
IN EFI_GUID *ImageHandle,
96+
IN EFI_GUID *DeviceHandle)
97+
);
98+
99+
MOCK_FUNCTION_DECLARATION (
100+
EFI_STATUS,
101+
FreeIoSpace,
102+
(IN EFI_PHYSICAL_ADDRESS BaseAddress,
103+
IN UINT64 Length)
104+
);
105+
106+
MOCK_FUNCTION_DECLARATION (
107+
EFI_STATUS,
108+
RemoveIoSpace,
109+
(IN EFI_PHYSICAL_ADDRESS BaseAddress,
110+
IN UINT64 Length)
111+
);
112+
113+
MOCK_FUNCTION_DECLARATION (
114+
EFI_STATUS,
115+
GetIoSpaceDescriptor,
116+
(IN EFI_PHYSICAL_ADDRESS BaseAddress,
117+
OUT EFI_GCD_IO_SPACE_DESCRIPTOR *Descriptor)
118+
);
119+
120+
MOCK_FUNCTION_DECLARATION (
121+
EFI_STATUS,
122+
GetIoSpaceMap,
123+
(IN OUT UINTN *NumberOfDescriptors,
124+
OUT EFI_GCD_IO_SPACE_DESCRIPTOR **IoSpaceMap)
125+
);
126+
127+
MOCK_FUNCTION_DECLARATION (
128+
EFI_STATUS,
129+
Dispatch,
130+
()
131+
);
132+
133+
MOCK_FUNCTION_DECLARATION (
134+
EFI_STATUS,
135+
Schedule,
136+
()
137+
);
138+
139+
MOCK_FUNCTION_DECLARATION (
140+
EFI_STATUS,
141+
Trust,
142+
()
143+
);
144+
145+
MOCK_FUNCTION_DECLARATION (
146+
EFI_STATUS,
147+
ProcessFirmwareVolume,
148+
(IN CONST VOID *FirmwareVolumeHeader,
149+
IN UINTN Size,
150+
OUT EFI_HANDLE *FirmwareVolumeHandle)
151+
);
152+
153+
MOCK_FUNCTION_DECLARATION (
154+
EFI_STATUS,
155+
SetMemorySpaceCapabilities,
156+
(IN EFI_PHYSICAL_ADDRESS BaseAddress,
157+
IN UINT64 Length,
158+
IN UINT64 Capabilities)
159+
);
160+
};
161+
162+
#endif // MOCK_UEFI_DXE_SERVICES_TABLE_LIB_H_

0 commit comments

Comments
 (0)