From 7161cac1db9ee93565a84edd0b2268b2582490ef Mon Sep 17 00:00:00 2001 From: kanechen66 Date: Wed, 11 Dec 2024 23:54:01 +0800 Subject: [PATCH] Add MockVariablePolicyHelperLib (#1238) ## Description Provide MockVariablePolicyHelperLib for GoogleTest. - [ ] Impacts functionality? - [ ] Impacts security? - [ ] Breaking change? - [x] Includes tests? - [ ] Includes documentation? - [x] Backport to release branch? ## How This Was Tested Tested in module integrated with this MockVariablePolicyHelperLib and pass ## Integration Instructions N/A --------- Co-authored-by: Aaron --- MdeModulePkg/Test/MdeModulePkgHostTest.dsc | 1 + .../Library/MockVariablePolicyHelperLib.h | 81 +++++++++++++++++++ .../MockVariablePolicyHelperLib.cpp | 14 ++++ .../MockVariablePolicyHelperLib.inf | 33 ++++++++ 4 files changed, 129 insertions(+) create mode 100644 MdeModulePkg/Test/Mock/Include/GoogleTest/Library/MockVariablePolicyHelperLib.h create mode 100644 MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.cpp create mode 100644 MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.inf diff --git a/MdeModulePkg/Test/MdeModulePkgHostTest.dsc b/MdeModulePkg/Test/MdeModulePkgHostTest.dsc index d02f302ac7..5653b18f35 100644 --- a/MdeModulePkg/Test/MdeModulePkgHostTest.dsc +++ b/MdeModulePkg/Test/MdeModulePkgHostTest.dsc @@ -118,3 +118,4 @@ MdeModulePkg/Test/Mock/Library/GoogleTest/MockCapsuleLib/MockCapsuleLib.inf MdeModulePkg/Test/Mock/Library/GoogleTest/MockUefiBootManagerLib/MockUefiBootManagerLib.inf MdeModulePkg/Test/Mock/Library/GoogleTest/MockPlatformHookLib/MockPlatformHookLib.inf + MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.inf \ No newline at end of file diff --git a/MdeModulePkg/Test/Mock/Include/GoogleTest/Library/MockVariablePolicyHelperLib.h b/MdeModulePkg/Test/Mock/Include/GoogleTest/Library/MockVariablePolicyHelperLib.h new file mode 100644 index 0000000000..585b1266bf --- /dev/null +++ b/MdeModulePkg/Test/Mock/Include/GoogleTest/Library/MockVariablePolicyHelperLib.h @@ -0,0 +1,81 @@ +/** @file MockVariablePolicyHelper.h + Google Test mocks for VariablePolicyHelper + + Copyright (c) Microsoft Corporation. + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef MOCK_VARIABLE_POLICY_HELPER_LIB_H_ +#define MOCK_VARIABLE_POLICY_HELPER_LIB_H_ + +#include +#include +extern "C" { + #include + #include +} + +// +// Declarations to handle usage of the VariablePolicyHelperLib by creating mock +// +struct MockVariablePolicyHelperLib { + MOCK_INTERFACE_DECLARATION (MockVariablePolicyHelperLib); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + CreateBasicVariablePolicy, + (IN CONST EFI_GUID *Namespace, + IN CONST CHAR16 *Name OPTIONAL, + IN UINT32 MinSize, + IN UINT32 MaxSize, + IN UINT32 AttributesMustHave, + IN UINT32 AttributesCantHave, + IN UINT8 LockPolicyType, + OUT VARIABLE_POLICY_ENTRY **NewEntry) + ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + CreateVarStateVariablePolicy, + (IN CONST EFI_GUID *Namespace, + IN CONST CHAR16 *Name OPTIONAL, + IN UINT32 MinSize, + IN UINT32 MaxSize, + IN UINT32 AttributesMustHave, + IN UINT32 AttributesCantHave, + IN CONST EFI_GUID *VarStateNamespace, + IN UINT8 VarStateValue, + IN CONST CHAR16 *VarStateName, + OUT VARIABLE_POLICY_ENTRY **NewEntry) + ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + RegisterBasicVariablePolicy, + (IN EDKII_VARIABLE_POLICY_PROTOCOL *VariablePolicy, + IN CONST EFI_GUID *Namespace, + IN CONST CHAR16 *Name OPTIONAL, + IN UINT32 MinSize, + IN UINT32 MaxSize, + IN UINT32 AttributesMustHave, + IN UINT32 AttributesCantHave, + IN UINT8 LockPolicyType) + ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + RegisterVarStateVariablePolicy, + (IN EDKII_VARIABLE_POLICY_PROTOCOL *VariablePolicy, + IN CONST EFI_GUID *Namespace, + IN CONST CHAR16 *Name OPTIONAL, + IN UINT32 MinSize, + IN UINT32 MaxSize, + IN UINT32 AttributesMustHave, + IN UINT32 AttributesCantHave, + IN CONST EFI_GUID *VarStateNamespace, + IN CONST CHAR16 *VarStateName, + IN UINT8 VarStateValue) + ); +}; + +#endif diff --git a/MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.cpp b/MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.cpp new file mode 100644 index 0000000000..413d7b62e0 --- /dev/null +++ b/MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.cpp @@ -0,0 +1,14 @@ +/** @file MockVariablePolicyHelperLib.cpp + Google Test mocks for VariablePolicyHelperLib + + Copyright (c) Microsoft Corporation. + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#include + +MOCK_INTERFACE_DEFINITION (MockVariablePolicyHelperLib); +MOCK_FUNCTION_DEFINITION (MockVariablePolicyHelperLib, CreateBasicVariablePolicy, 8, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockVariablePolicyHelperLib, CreateVarStateVariablePolicy, 10, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockVariablePolicyHelperLib, RegisterBasicVariablePolicy, 8, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockVariablePolicyHelperLib, RegisterVarStateVariablePolicy, 10, EFIAPI); diff --git a/MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.inf b/MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.inf new file mode 100644 index 0000000000..82faba5a23 --- /dev/null +++ b/MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.inf @@ -0,0 +1,33 @@ +## @file MockVariablePolicyHelperLib.inf +# Mock Variable Policy Library implementation. +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = MockVariablePolicyHelperLib + FILE_GUID = 251633CE-1FE7-4500-BF0A-CF3B2B52B9EE + MODULE_TYPE = HOST_APPLICATION + VERSION_STRING = 1.0 + LIBRARY_CLASS = VariablePolicyHelperLib + PI_SPECIFICATION_VERSION = 0x0001000A + +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + MockVariablePolicyHelperLib.cpp + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec + +[LibraryClasses] + GoogleTestLib + +[BuildOptions] + MSFT:*_*_*_CC_FLAGS = /EHsc