Skip to content

Commit 3884f2a

Browse files
v-bhavanisuVivianNK
andcommitted
MdeModulePkg: Add SmmVarCheck and PlatformHookLib gmock
Added a gmocks for GoogleTests Signed-off-by: Vivian Nowka-Keane <[email protected]> Co-authored-by: Vivian Nowka-Keane <[email protected]>
1 parent 956ef6c commit 3884f2a

File tree

5 files changed

+146
-0
lines changed

5 files changed

+146
-0
lines changed

MdeModulePkg/Test/MdeModulePkgHostTest.dsc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,4 @@
7070
#
7171
MdeModulePkg/Test/Mock/Library/GoogleTest/MockPciHostBridgeLib/MockPciHostBridgeLib.inf
7272
MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.inf
73+
MdeModulePkg/Test/Mock/Library/GoogleTest/MockPlatformHookLib/MockPlatformHookLib.inf
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/** @file MockPlatformHookLib.h
2+
Google Test mocks for PlatformHookLib
3+
4+
Copyright (c) 2023, Intel Corporation. All rights reserved.
5+
Copyright (c) Microsoft Corporation.
6+
SPDX-License-Identifier: BSD-2-Clause-Patent
7+
**/
8+
9+
#ifndef MOCK_PLATFORM_HOOK_LIB_
10+
#define MOCK_PLATFORM_HOOK_LIB_
11+
12+
#include <Library/GoogleTestLib.h>
13+
#include <Library/FunctionMockLib.h>
14+
extern "C" {
15+
#include <Uefi.h>
16+
#include <Library/PlatformHookLib.h>
17+
}
18+
19+
struct MockPlatformHookLib {
20+
MOCK_INTERFACE_DECLARATION (MockPlatformHookLib);
21+
22+
MOCK_FUNCTION_DECLARATION (
23+
RETURN_STATUS,
24+
PlatformHookSerialPortInitialize,
25+
(
26+
27+
)
28+
);
29+
};
30+
31+
#endif
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/** @file MockSmmVarCheck.h
2+
This file declares a mock of Smm Variable Check Protocol.
3+
4+
Copyright (c) Microsoft Corporation.
5+
SPDX-License-Identifier: BSD-2-Clause-Patent
6+
**/
7+
8+
#ifndef MOCK_SMM_VAR_CHECK_H_
9+
#define MOCK_SMM_VAR_CHECK_H_
10+
11+
#include <Library/GoogleTestLib.h>
12+
#include <Library/FunctionMockLib.h>
13+
14+
extern "C" {
15+
#include <Uefi.h>
16+
#include <Protocol/SmmVarCheck.h>
17+
}
18+
19+
struct MockEdkiiSmmVarCheckProtocol {
20+
MOCK_INTERFACE_DECLARATION (MockEdkiiSmmVarCheckProtocol);
21+
22+
MOCK_FUNCTION_DECLARATION (
23+
EFI_STATUS,
24+
SmmRegisterSetVariableCheckHandler,
25+
(
26+
IN VAR_CHECK_SET_VARIABLE_CHECK_HANDLER Handler
27+
)
28+
);
29+
30+
MOCK_FUNCTION_DECLARATION (
31+
EFI_STATUS,
32+
SmmVariablePropertySet,
33+
(
34+
IN CHAR16 *Name,
35+
IN EFI_GUID *Guid,
36+
IN VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
37+
)
38+
);
39+
MOCK_FUNCTION_DECLARATION (
40+
EFI_STATUS,
41+
SmmVariablePropertyGet,
42+
(
43+
IN CHAR16 *Name,
44+
IN EFI_GUID *Guid,
45+
OUT VAR_CHECK_VARIABLE_PROPERTY *VariableProperty
46+
)
47+
);
48+
};
49+
50+
MOCK_INTERFACE_DEFINITION (MockEdkiiSmmVarCheckProtocol);
51+
MOCK_FUNCTION_DEFINITION (MockEdkiiSmmVarCheckProtocol, SmmRegisterSetVariableCheckHandler, 1, EFIAPI);
52+
MOCK_FUNCTION_DEFINITION (MockEdkiiSmmVarCheckProtocol, SmmVariablePropertySet, 3, EFIAPI);
53+
MOCK_FUNCTION_DEFINITION (MockEdkiiSmmVarCheckProtocol, SmmVariablePropertyGet, 3, EFIAPI);
54+
55+
//
56+
// Mock protocol instantiation for external use in test cases
57+
//
58+
#define MOCK_EDKII_SMM_VAR_CHECK_PROTOCOL_INSTANCE(NAME) \
59+
EDKII_SMM_VAR_CHECK_PROTOCOL NAME##_INSTANCE = { \
60+
SmmRegisterSetVariableCheckHandler, \
61+
SmmVariablePropertySet, \
62+
GetRng }; \
63+
EDKII_SMM_VAR_CHECK_PROTOCOL *NAME = &NAME##_INSTANCE;
64+
65+
#endif // MOCK_SMM_VAR_CHECK_H_
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/** @file MockPlatformHookLib.cpp
2+
Mock instance of the PCI Host Bridge Library.
3+
4+
Copyright (c) 2023, Intel Corporation. All rights reserved.
5+
Copyright (c) Microsoft Corporation.
6+
SPDX-License-Identifier: BSD-2-Clause-Patent
7+
**/
8+
9+
#include <GoogleTest/Library/MockPlatformHookLib.h>
10+
11+
MOCK_INTERFACE_DEFINITION (MockPlatformHookLib);
12+
13+
MOCK_FUNCTION_DEFINITION (MockPlatformHookLib, PlatformHookSerialPortInitialize, 0, EFIAPI);
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
## @file MockPlatformHookLib.inf
2+
# Mock instance of the Platform hook library.
3+
#
4+
# Copyright (c) 2023, Intel Corporation. All rights reserved.
5+
# Copyright (c) Microsoft Corporation.
6+
# SPDX-License-Identifier: BSD-2-Clause-Patent
7+
##
8+
9+
[Defines]
10+
INF_VERSION = 0x00010005
11+
BASE_NAME = MockPlatformHookLib
12+
FILE_GUID = B7721E18-FC59-4333-AE5E-B07EE71D6737
13+
MODULE_TYPE = HOST_APPLICATION
14+
VERSION_STRING = 1.0
15+
LIBRARY_CLASS = PlatformHookLib
16+
17+
#
18+
# The following information is for reference only and not required by the build
19+
# tools.
20+
#
21+
# VALID_ARCHITECTURES = IA32 X64
22+
#
23+
24+
[Sources]
25+
MockPlatformHookLib.cpp
26+
27+
[Packages]
28+
MdePkg/MdePkg.dec
29+
MdeModulePkg/MdeModulePkg.dec
30+
UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
31+
32+
[LibraryClasses]
33+
GoogleTestLib
34+
35+
[BuildOptions]
36+
MSFT:*_*_*_CC_FLAGS = /EHsc

0 commit comments

Comments
 (0)