Skip to content

Commit 50e3472

Browse files
v-bhavanisuVivianNK
authored andcommitted
UefiCpuPkg: Add gmock for LocalApicLib
Signed-off-by: Vivian Nowka-Keane <[email protected]>
1 parent 2155fd5 commit 50e3472

File tree

5 files changed

+308
-0
lines changed

5 files changed

+308
-0
lines changed
Lines changed: 226 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,226 @@
1+
/** @file MockLocalApicLib.h
2+
Google Test mocks for LocalApicLib
3+
4+
Copyright (c) Microsoft Corporation.
5+
SPDX-License-Identifier: BSD-2-Clause-Patent
6+
**/
7+
8+
#ifndef MOCK_LOCAL_APIC_LIB_H_
9+
#define MOCK_LOCAL_APIC_LIB_H_
10+
11+
#include <Library/GoogleTestLib.h>
12+
#include <Library/FunctionMockLib.h>
13+
extern "C" {
14+
#include <Library/LocalApicLib.h>
15+
}
16+
17+
struct MockLocalApicLib {
18+
MOCK_INTERFACE_DECLARATION (MockLocalApicLib);
19+
20+
MOCK_FUNCTION_DECLARATION (
21+
UINTN,
22+
GetLocalApicBaseAddress,
23+
()
24+
);
25+
26+
MOCK_FUNCTION_DECLARATION (
27+
VOID,
28+
SetLocalApicBaseAddress,
29+
(IN UINTN BaseAddress)
30+
);
31+
32+
MOCK_FUNCTION_DECLARATION (
33+
UINTN,
34+
GetApicMode,
35+
()
36+
);
37+
38+
MOCK_FUNCTION_DECLARATION (
39+
VOID,
40+
SetApicMode,
41+
(IN UINTN ApicMode)
42+
);
43+
44+
MOCK_FUNCTION_DECLARATION (
45+
UINT32,
46+
GetInitialApicId,
47+
()
48+
);
49+
50+
MOCK_FUNCTION_DECLARATION (
51+
UINT32,
52+
GetApicId,
53+
()
54+
);
55+
56+
MOCK_FUNCTION_DECLARATION (
57+
UINT32,
58+
GetApicVersion,
59+
()
60+
);
61+
62+
MOCK_FUNCTION_DECLARATION (
63+
VOID,
64+
SendFixedIpi,
65+
(IN UINT32 ApicId,
66+
IN UINT8 Vector)
67+
);
68+
69+
MOCK_FUNCTION_DECLARATION (
70+
VOID,
71+
SendFixedIpiAllExcludingSelf,
72+
(IN UINT8 Vector)
73+
);
74+
75+
MOCK_FUNCTION_DECLARATION (
76+
VOID,
77+
SendSmiIpi,
78+
(IN UINT32 ApicId)
79+
);
80+
81+
MOCK_FUNCTION_DECLARATION (
82+
VOID,
83+
SendSmiIpiAllExcludingSelf,
84+
()
85+
);
86+
87+
MOCK_FUNCTION_DECLARATION (
88+
VOID,
89+
SendInitIpi,
90+
(IN UINT32 ApicId)
91+
);
92+
93+
MOCK_FUNCTION_DECLARATION (
94+
VOID,
95+
SendInitIpiAllExcludingSelf,
96+
()
97+
);
98+
99+
MOCK_FUNCTION_DECLARATION (
100+
VOID,
101+
SendStartupIpiAllExcludingSelf,
102+
(IN UINT32 StartupRoutine)
103+
);
104+
105+
MOCK_FUNCTION_DECLARATION (
106+
VOID,
107+
SendInitSipiSipi,
108+
(IN UINT32 ApicId,
109+
IN UINT32 StartupRoutine)
110+
);
111+
112+
MOCK_FUNCTION_DECLARATION (
113+
VOID,
114+
SendInitSipiSipiAllExcludingSelf,
115+
(IN UINT32 StartupRoutine)
116+
);
117+
118+
MOCK_FUNCTION_DECLARATION (
119+
VOID,
120+
InitializeLocalApicSoftwareEnable,
121+
(IN BOOLEAN Enable)
122+
);
123+
124+
MOCK_FUNCTION_DECLARATION (
125+
VOID,
126+
ProgramVirtualWireMode,
127+
()
128+
);
129+
130+
MOCK_FUNCTION_DECLARATION (
131+
VOID,
132+
DisableLvtInterrupts,
133+
()
134+
);
135+
136+
MOCK_FUNCTION_DECLARATION (
137+
UINT32,
138+
GetApicTimerInitCount,
139+
()
140+
);
141+
142+
MOCK_FUNCTION_DECLARATION (
143+
UINT32,
144+
GetApicTimerCurrentCount,
145+
()
146+
);
147+
148+
MOCK_FUNCTION_DECLARATION (
149+
VOID,
150+
InitializeApicTimer,
151+
(IN UINTN DivideValue,
152+
IN UINT32 InitCount,
153+
IN BOOLEAN PeriodicMode,
154+
IN UINT8 Vector)
155+
);
156+
157+
MOCK_FUNCTION_DECLARATION (
158+
VOID,
159+
GetApicTimerState,
160+
(OUT UINTN *DivideValue OPTIONAL,
161+
OUT BOOLEAN *PeriodicMode OPTIONAL,
162+
OUT UINT8 *Vector OPTIONAL)
163+
);
164+
165+
MOCK_FUNCTION_DECLARATION (
166+
VOID,
167+
EnableApicTimerInterrupt,
168+
()
169+
);
170+
171+
MOCK_FUNCTION_DECLARATION (
172+
VOID,
173+
DisableApicTimerInterrupt,
174+
()
175+
);
176+
177+
MOCK_FUNCTION_DECLARATION (
178+
BOOLEAN,
179+
GetApicTimerInterruptState,
180+
()
181+
);
182+
183+
MOCK_FUNCTION_DECLARATION (
184+
VOID,
185+
SendApicEoi,
186+
()
187+
);
188+
189+
MOCK_FUNCTION_DECLARATION (
190+
UINT32,
191+
GetApicMsiAddress,
192+
()
193+
);
194+
195+
MOCK_FUNCTION_DECLARATION (
196+
UINT64,
197+
GetApicMsiValue,
198+
(IN UINT8 Vector,
199+
IN UINTN DeliveryMode,
200+
IN BOOLEAN LevelTriggered,
201+
IN BOOLEAN AssertionLevel)
202+
);
203+
204+
MOCK_FUNCTION_DECLARATION (
205+
VOID,
206+
GetProcessorLocationByApicId,
207+
(IN UINT32 InitialApicId,
208+
OUT UINT32 *Package OPTIONAL,
209+
OUT UINT32 *Core OPTIONAL,
210+
OUT UINT32 *Thread OPTIONAL)
211+
);
212+
213+
MOCK_FUNCTION_DECLARATION (
214+
VOID,
215+
GetProcessorLocation2ByApicId,
216+
(IN UINT32 InitialApicId,
217+
OUT UINT32 *Package OPTIONAL,
218+
OUT UINT32 *Die OPTIONAL,
219+
OUT UINT32 *Tile OPTIONAL,
220+
OUT UINT32 *Module OPTIONAL,
221+
OUT UINT32 *Core OPTIONAL,
222+
OUT UINT32 *Thread OPTIONAL)
223+
);
224+
};
225+
226+
#endif
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/** @file MockLocalApicLib.cpp
2+
Google Test mocks for LocalApicLib
3+
4+
Copyright (c) Microsoft Corporation.
5+
SPDX-License-Identifier: BSD-2-Clause-Patent
6+
**/
7+
8+
#include <GoogleTest/Library/MockLocalApicLib.h>
9+
10+
MOCK_INTERFACE_DEFINITION (MockLocalApicLib);
11+
12+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetLocalApicBaseAddress, 0, EFIAPI);
13+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SetLocalApicBaseAddress, 1, EFIAPI);
14+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicMode, 0, EFIAPI);
15+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SetApicMode, 1, EFIAPI);
16+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetInitialApicId, 0, EFIAPI);
17+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicId, 0, EFIAPI);
18+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicVersion, 0, EFIAPI);
19+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendFixedIpi, 2, EFIAPI);
20+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendFixedIpiAllExcludingSelf, 1, EFIAPI);
21+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendSmiIpi, 1, EFIAPI);
22+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendSmiIpiAllExcludingSelf, 0, EFIAPI);
23+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendInitIpi, 1, EFIAPI);
24+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendInitIpiAllExcludingSelf, 0, EFIAPI);
25+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendStartupIpiAllExcludingSelf, 1, EFIAPI);
26+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendInitSipiSipi, 2, EFIAPI);
27+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendInitSipiSipiAllExcludingSelf, 1, EFIAPI);
28+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, InitializeLocalApicSoftwareEnable, 1, EFIAPI);
29+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, ProgramVirtualWireMode, 0, EFIAPI);
30+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, DisableLvtInterrupts, 0, EFIAPI);
31+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicTimerInitCount, 0, EFIAPI);
32+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicTimerCurrentCount, 0, EFIAPI);
33+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, InitializeApicTimer, 4, EFIAPI);
34+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicTimerState, 3, EFIAPI);
35+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, EnableApicTimerInterrupt, 0, EFIAPI);
36+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, DisableApicTimerInterrupt, 0, EFIAPI);
37+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicTimerInterruptState, 0, EFIAPI);
38+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendApicEoi, 0, EFIAPI);
39+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicMsiAddress, 0, EFIAPI);
40+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicMsiValue, 4, EFIAPI);
41+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetProcessorLocationByApicId, 4, EFIAPI);
42+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetProcessorLocation2ByApicId, 7, EFIAPI);
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
## @file MockLocalApicLib.inf
2+
# Google Test mocks for LocalApicLib
3+
#
4+
# Copyright (c) Microsoft Corporation.
5+
# SPDX-License-Identifier: BSD-2-Clause-Patent
6+
##
7+
8+
[Defines]
9+
INF_VERSION = 0x00010005
10+
BASE_NAME = MockLocalApicLib
11+
FILE_GUID = 33E27393-001E-4915-8AAA-0C1C9465E655
12+
MODULE_TYPE = HOST_APPLICATION
13+
VERSION_STRING = 1.0
14+
LIBRARY_CLASS = LocalApicLib
15+
16+
#
17+
# The following information is for reference only and not required by the build tools.
18+
#
19+
# VALID_ARCHITECTURES = IA32 X64
20+
#
21+
22+
[Sources]
23+
MockLocalApicLib.cpp
24+
25+
[Packages]
26+
UefiCpuPkg/UefiCpuPkg.dec
27+
MdePkg/MdePkg.dec
28+
UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
29+
30+
[LibraryClasses]
31+
GoogleTestLib
32+
33+
[BuildOptions]
34+
MSFT:*_*_*_CC_FLAGS = /EHs /bigobj

UefiCpuPkg/Test/UefiCpuPkgHostTest.dsc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,8 @@
3838
# Build HOST_APPLICATION that tests the CpuPageTableLib
3939
#
4040
UefiCpuPkg/Library/CpuPageTableLib/UnitTest/CpuPageTableLibUnitTestHost.inf
41+
42+
#
43+
# Build HOST_APPLICATION Libraries for GoogleTests
44+
#
45+
UefiCpuPkg/Test/Mock/Library/GoogleTest/MockLocalApicLib/MockLocalApicLib.inf

UefiCpuPkg/UefiCpuPkg.dec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
[Includes]
2020
Include
21+
Test/Mock/Include
2122

2223
[LibraryClasses]
2324
## @libraryclass Defines some routines that are used to register/manage/program

0 commit comments

Comments
 (0)