Skip to content

Commit 3f7ef5c

Browse files
authored
Add the functions from LocalApicLib.h to MockLocalApicLib. (#1444)
## Description Add mock functions for "LocalApicLIb.h" for unit testing. EDK2 PR: tianocore/edk2#11330 - [ ] Impacts functionality? - [ ] Impacts security? - [ ] Breaking change? - [ ] Includes tests? - [ ] Includes documentation? - [x] Backport to release branch? ## How This Was Tested The mock library API can be consumed successfully in unit test. ## Integration Instructions N/A
1 parent a9a137a commit 3f7ef5c

File tree

2 files changed

+240
-0
lines changed

2 files changed

+240
-0
lines changed

UefiCpuPkg/Test/Mock/Include/GoogleTest/Library/MockLocalApicLib.h

Lines changed: 210 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,203 @@ extern "C" {
1717
struct MockLocalApicLib {
1818
MOCK_INTERFACE_DECLARATION (MockLocalApicLib);
1919

20+
MOCK_FUNCTION_DECLARATION (
21+
UINTN,
22+
GetLocalApicBaseAddress,
23+
(
24+
)
25+
);
26+
MOCK_FUNCTION_DECLARATION (
27+
VOID,
28+
SetLocalApicBaseAddress,
29+
(
30+
IN UINTN BaseAddress
31+
)
32+
);
33+
MOCK_FUNCTION_DECLARATION (
34+
UINTN,
35+
GetApicMode,
36+
(
37+
)
38+
);
39+
MOCK_FUNCTION_DECLARATION (
40+
VOID,
41+
SetApicMode,
42+
(
43+
IN UINTN ApicMode
44+
)
45+
);
46+
MOCK_FUNCTION_DECLARATION (
47+
UINT32,
48+
GetInitialApicId,
49+
(
50+
)
51+
);
52+
MOCK_FUNCTION_DECLARATION (
53+
UINT32,
54+
GetApicId,
55+
(
56+
)
57+
);
58+
MOCK_FUNCTION_DECLARATION (
59+
UINT32,
60+
GetApicVersion,
61+
(
62+
)
63+
);
64+
MOCK_FUNCTION_DECLARATION (
65+
VOID,
66+
SendFixedIpi,
67+
(
68+
IN UINT32 ApicId,
69+
IN UINT8 Vector
70+
)
71+
);
72+
MOCK_FUNCTION_DECLARATION (
73+
VOID,
74+
SendFixedIpiAllExcludingSelf,
75+
(
76+
IN UINT8 Vector
77+
)
78+
);
79+
MOCK_FUNCTION_DECLARATION (
80+
VOID,
81+
SendSmiIpi,
82+
(
83+
IN UINT32 ApicId
84+
)
85+
);
86+
MOCK_FUNCTION_DECLARATION (
87+
VOID,
88+
SendSmiIpiAllExcludingSelf,
89+
(
90+
)
91+
);
92+
MOCK_FUNCTION_DECLARATION (
93+
VOID,
94+
SendInitIpi,
95+
(
96+
IN UINT32 ApicId
97+
)
98+
);
99+
MOCK_FUNCTION_DECLARATION (
100+
VOID,
101+
SendInitIpiAllExcludingSelf,
102+
(
103+
)
104+
);
105+
MOCK_FUNCTION_DECLARATION (
106+
VOID,
107+
SendStartupIpiAllExcludingSelf,
108+
(
109+
IN UINT32 StartupRoutine
110+
)
111+
);
112+
MOCK_FUNCTION_DECLARATION (
113+
VOID,
114+
SendInitSipiSipi,
115+
(
116+
IN UINT32 ApicId,
117+
IN UINT32 StartupRoutine
118+
)
119+
);
120+
MOCK_FUNCTION_DECLARATION (
121+
VOID,
122+
SendInitSipiSipiAllExcludingSelf,
123+
(
124+
IN UINT32 StartupRoutine
125+
)
126+
);
127+
MOCK_FUNCTION_DECLARATION (
128+
VOID,
129+
InitializeLocalApicSoftwareEnable,
130+
(
131+
IN BOOLEAN Enable
132+
)
133+
);
134+
MOCK_FUNCTION_DECLARATION (
135+
VOID,
136+
ProgramVirtualWireMode,
137+
(
138+
)
139+
);
140+
MOCK_FUNCTION_DECLARATION (
141+
VOID,
142+
DisableLvtInterrupts,
143+
(
144+
)
145+
);
146+
MOCK_FUNCTION_DECLARATION (
147+
UINT32,
148+
GetApicTimerInitCount,
149+
(
150+
)
151+
);
152+
MOCK_FUNCTION_DECLARATION (
153+
UINT32,
154+
GetApicTimerCurrentCount,
155+
(
156+
)
157+
);
158+
MOCK_FUNCTION_DECLARATION (
159+
VOID,
160+
InitializeApicTimer,
161+
(
162+
IN UINTN DivideValue,
163+
IN UINT32 InitCount,
164+
IN BOOLEAN PeriodicMode,
165+
IN UINT8 Vector
166+
)
167+
);
168+
MOCK_FUNCTION_DECLARATION (
169+
VOID,
170+
GetApicTimerState,
171+
(
172+
OUT UINTN *DivideValue OPTIONAL,
173+
OUT BOOLEAN *PeriodicMode OPTIONAL,
174+
OUT UINT8 *Vector OPTIONAL
175+
)
176+
);
177+
MOCK_FUNCTION_DECLARATION (
178+
VOID,
179+
EnableApicTimerInterrupt,
180+
(
181+
)
182+
);
183+
MOCK_FUNCTION_DECLARATION (
184+
VOID,
185+
DisableApicTimerInterrupt,
186+
(
187+
)
188+
);
189+
MOCK_FUNCTION_DECLARATION (
190+
BOOLEAN,
191+
GetApicTimerInterruptState,
192+
(
193+
)
194+
);
195+
MOCK_FUNCTION_DECLARATION (
196+
VOID,
197+
SendApicEoi,
198+
(
199+
)
200+
);
201+
MOCK_FUNCTION_DECLARATION (
202+
UINT32,
203+
GetApicMsiAddress,
204+
(
205+
)
206+
);
207+
MOCK_FUNCTION_DECLARATION (
208+
UINT64,
209+
GetApicMsiValue,
210+
(
211+
IN UINT8 Vector,
212+
IN UINTN DeliveryMode,
213+
IN BOOLEAN LevelTriggered,
214+
IN BOOLEAN AssertionLevel
215+
)
216+
);
20217
MOCK_FUNCTION_DECLARATION (
21218
VOID,
22219
GetProcessorLocationByApicId,
@@ -27,6 +224,19 @@ struct MockLocalApicLib {
27224
OUT UINT32 *Thread OPTIONAL
28225
)
29226
);
227+
MOCK_FUNCTION_DECLARATION (
228+
VOID,
229+
GetProcessorLocation2ByApicId,
230+
(
231+
IN UINT32 InitialApicId,
232+
OUT UINT32 *Package OPTIONAL,
233+
OUT UINT32 *Die OPTIONAL,
234+
OUT UINT32 *Tile OPTIONAL,
235+
OUT UINT32 *Module OPTIONAL,
236+
OUT UINT32 *Core OPTIONAL,
237+
OUT UINT32 *Thread OPTIONAL
238+
)
239+
);
30240
};
31241

32242
#endif //MOCK_LOCAL_APIC_LIB_H_

UefiCpuPkg/Test/Mock/Library/GoogleTest/MockLocalApicLib/MockLocalApicLib.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,34 @@
88
#include <GoogleTest/Library/MockLocalApicLib.h>
99

1010
MOCK_INTERFACE_DEFINITION (MockLocalApicLib);
11+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetLocalApicBaseAddress, 0, EFIAPI);
12+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SetLocalApicBaseAddress, 1, EFIAPI);
13+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicMode, 0, EFIAPI);
14+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SetApicMode, 1, EFIAPI);
15+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetInitialApicId, 0, EFIAPI);
16+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicId, 0, EFIAPI);
17+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicVersion, 0, EFIAPI);
18+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendFixedIpi, 2, EFIAPI);
19+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendFixedIpiAllExcludingSelf, 1, EFIAPI);
20+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendSmiIpi, 1, EFIAPI);
21+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendSmiIpiAllExcludingSelf, 0, EFIAPI);
22+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendInitIpi, 1, EFIAPI);
23+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendInitIpiAllExcludingSelf, 0, EFIAPI);
24+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendStartupIpiAllExcludingSelf, 1, EFIAPI);
25+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendInitSipiSipi, 2, EFIAPI);
26+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendInitSipiSipiAllExcludingSelf, 1, EFIAPI);
27+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, InitializeLocalApicSoftwareEnable, 1, EFIAPI);
28+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, ProgramVirtualWireMode, 0, EFIAPI);
29+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, DisableLvtInterrupts, 0, EFIAPI);
30+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicTimerInitCount, 0, EFIAPI);
31+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicTimerCurrentCount, 0, EFIAPI);
32+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, InitializeApicTimer, 4, EFIAPI);
33+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicTimerState, 3, EFIAPI);
34+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, EnableApicTimerInterrupt, 0, EFIAPI);
35+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, DisableApicTimerInterrupt, 0, EFIAPI);
36+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicTimerInterruptState, 0, EFIAPI);
37+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, SendApicEoi, 0, EFIAPI);
38+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicMsiAddress, 0, EFIAPI);
39+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetApicMsiValue, 4, EFIAPI);
1140
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetProcessorLocationByApicId, 4, EFIAPI);
41+
MOCK_FUNCTION_DEFINITION (MockLocalApicLib, GetProcessorLocation2ByApicId, 7, EFIAPI);

0 commit comments

Comments
 (0)