Skip to content

Commit bc71760

Browse files
committed
MdePkg: Add MockSynchronizationLib
1 parent 206d4a6 commit bc71760

File tree

4 files changed

+174
-0
lines changed

4 files changed

+174
-0
lines changed

MdePkg/Test/MdePkgHostTest.dsc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,4 +73,5 @@
7373
MdePkg/Test/Mock/Library/GoogleTest/MockPostCodeLib/MockPostCodeLib.inf
7474
MdePkg/Test/Mock/Library/GoogleTest/MockSafeIntLib/MockSafeIntLib.inf
7575
MdePkg/Test/Mock/Library/GoogleTest/MockSmmMemLib/MockSmmMemLib.inf
76+
MdePkg/Test/Mock/Library/GoogleTest/MockSynchronizationLib/MockSynchronizationLib.inf
7677
# MU_CHANGE [END]
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
/** @file MockSynchronizationLib.h
2+
Google Test mocks for the synchronization Library
3+
4+
Copyright (c) Microsoft Corporation.
5+
SPDX-License-Identifier: BSD-2-Clause-Patent
6+
**/
7+
8+
#ifndef MOCK_SYNCHRONIZATION_LIB_H_
9+
#define MOCK_SYNCHRONIZATION_LIB_H_
10+
11+
#include <Library/GoogleTestLib.h>
12+
#include <Library/FunctionMockLib.h>
13+
14+
extern "C" {
15+
#include <Uefi.h>
16+
#include <Library/SynchronizationLib.h>
17+
}
18+
19+
struct MockSynchronizationLib {
20+
MOCK_INTERFACE_DECLARATION (MockSynchronizationLib);
21+
22+
MOCK_FUNCTION_DECLARATION (
23+
UINTN,
24+
GetSpinLockProperties,
25+
(
26+
)
27+
);
28+
29+
MOCK_FUNCTION_DECLARATION (
30+
SPIN_LOCK *,
31+
InitializeSpinLock,
32+
(
33+
OUT SPIN_LOCK *SpinLock
34+
)
35+
);
36+
37+
MOCK_FUNCTION_DECLARATION (
38+
SPIN_LOCK *,
39+
AcquireSpinLock,
40+
(
41+
IN OUT SPIN_LOCK *SpinLock
42+
)
43+
);
44+
45+
MOCK_FUNCTION_DECLARATION (
46+
BOOLEAN,
47+
AcquireSpinLockOrFail,
48+
(
49+
IN OUT SPIN_LOCK *SpinLock
50+
)
51+
);
52+
53+
MOCK_FUNCTION_DECLARATION (
54+
SPIN_LOCK *,
55+
ReleaseSpinLock,
56+
(
57+
IN OUT SPIN_LOCK *SpinLock
58+
)
59+
);
60+
61+
MOCK_FUNCTION_DECLARATION (
62+
UINT32,
63+
InterlockedIncrement,
64+
(
65+
IN volatile UINT32 *Value
66+
)
67+
);
68+
69+
MOCK_FUNCTION_DECLARATION (
70+
UINT32,
71+
InterlockedDecrement,
72+
(
73+
IN volatile UINT32 *Value
74+
)
75+
);
76+
77+
MOCK_FUNCTION_DECLARATION (
78+
UINT16,
79+
InterlockedCompareExchange16,
80+
(
81+
IN OUT volatile UINT16 *Value,
82+
IN UINT16 CompareValue,
83+
IN UINT16 ExchangeValue
84+
)
85+
);
86+
87+
MOCK_FUNCTION_DECLARATION (
88+
UINT32,
89+
InterlockedCompareExchange32,
90+
(
91+
IN OUT volatile UINT32 *Value,
92+
IN UINT32 CompareValue,
93+
IN UINT32 ExchangeValue
94+
)
95+
);
96+
97+
MOCK_FUNCTION_DECLARATION (
98+
UINT64,
99+
InterlockedCompareExchange64,
100+
(
101+
IN OUT volatile UINT64 *Value,
102+
IN UINT64 CompareValue,
103+
IN UINT64 ExchangeValue
104+
)
105+
);
106+
107+
MOCK_FUNCTION_DECLARATION (
108+
VOID *,
109+
InterlockedCompareExchangePointer,
110+
(
111+
IN OUT VOID *volatile *Value,
112+
IN VOID *CompareValue,
113+
IN VOID *ExchangeValue
114+
)
115+
);
116+
};
117+
118+
#endif //MOCK_SYNCHRONIZATION_LIB_H_
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/** @file MockSynchronizationLib.cpp
2+
Google Test mocks for SynchronizationLib
3+
4+
Copyright (c) Microsoft Corporation.
5+
SPDX-License-Identifier: BSD-2-Clause-Patent
6+
**/
7+
8+
#include <GoogleTest/Library/MockSynchronizationLib.h>
9+
10+
MOCK_INTERFACE_DEFINITION (MockSynchronizationLib);
11+
12+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, GetSpinLockProperties, 0, EFIAPI);
13+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, InitializeSpinLock, 1, EFIAPI);
14+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, AcquireSpinLock, 1, EFIAPI);
15+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, AcquireSpinLockOrFail, 1, EFIAPI);
16+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, ReleaseSpinLock, 1, EFIAPI);
17+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, InterlockedIncrement, 1, EFIAPI);
18+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, InterlockedDecrement, 1, EFIAPI);
19+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, InterlockedCompareExchange16, 3, EFIAPI);
20+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, InterlockedCompareExchange32, 3, EFIAPI);
21+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, InterlockedCompareExchange64, 3, EFIAPI);
22+
MOCK_FUNCTION_DEFINITION (MockSynchronizationLib, InterlockedCompareExchangePointer, 3, EFIAPI);
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
## @file MockSynchronizationLib.inf
2+
# Google Test mocks for SynchronizationLib
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 = MockSynchronizationLib
11+
FILE_GUID = C041130D-BEFC-41C7-AD8A-438EEE14AE3F
12+
MODULE_TYPE = HOST_APPLICATION
13+
VERSION_STRING = 1.0
14+
LIBRARY_CLASS = SynchronizationLib
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+
MockSynchronizationLib.cpp
24+
25+
[Packages]
26+
MdePkg/MdePkg.dec
27+
UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
28+
29+
[LibraryClasses]
30+
GoogleTestLib
31+
32+
[BuildOptions]
33+
MSFT:*_*_*_CC_FLAGS = /EHsc

0 commit comments

Comments
 (0)