MdeModulePkg: Added MockHiiLib

Signed-off-by: Bhavani Subramanian <v-bhavanisu@microsoft.com>
This commit is contained in:
Bhavani Subramanian
2025-01-22 11:11:48 -08:00
committed by mergify[bot]
parent 9b6d1126de
commit 3d9de5d046
4 changed files with 444 additions and 0 deletions

View File

@@ -68,5 +68,6 @@
#
# Build HOST_APPLICATION Libraries
#
MdeModulePkg/Test/Mock/Library/GoogleTest/MockHiiLib/MockHiiLib.inf
MdeModulePkg/Test/Mock/Library/GoogleTest/MockPciHostBridgeLib/MockPciHostBridgeLib.inf
MdeModulePkg/Test/Mock/Library/GoogleTest/MockVariablePolicyHelperLib/MockVariablePolicyHelperLib.inf

View File

@@ -0,0 +1,360 @@
/** @file MockHiiLib.h
Google Test mocks for HiiLib
Copyright (c) Microsoft Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef MOCK_HII_LIB_H_
#define MOCK_HII_LIB_H_
#include <Library/GoogleTestLib.h>
#include <Library/FunctionMockLib.h>
extern "C" {
#include <PiPei.h>
#include <PiDxe.h>
#include <PiSmm.h>
#include <PiMm.h>
#include <Uefi.h>
#include <Library/HiiLib.h>
}
struct MockHiiLib {
MOCK_INTERFACE_DECLARATION (MockHiiLib);
MOCK_FUNCTION_DECLARATION (
VOID,
HiiRemovePackages,
(IN EFI_HII_HANDLE HiiHandle)
);
MOCK_FUNCTION_DECLARATION (
EFI_STRING_ID,
HiiSetString,
(IN EFI_HII_HANDLE HiiHandle,
IN EFI_STRING_ID StringId OPTIONAL,
IN CONST EFI_STRING String,
IN CONST CHAR8 *SupportedLanguages OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
EFI_STRING,
HiiGetString,
(IN EFI_HII_HANDLE HiiHandle,
IN EFI_STRING_ID StringId,
IN CONST CHAR8 *Language OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
EFI_STRING,
HiiGetStringEx,
(IN EFI_HII_HANDLE HiiHandle,
IN EFI_STRING_ID StringId,
IN CONST CHAR8 *Language OPTIONAL,
IN BOOLEAN TryBestLanguage)
);
MOCK_FUNCTION_DECLARATION (
EFI_STRING,
HiiGetPackageString,
(IN CONST EFI_GUID *PackageListGuid,
IN EFI_STRING_ID StringId,
IN CONST CHAR8 *Language OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
EFI_HII_HANDLE *,
HiiGetHiiHandles,
(IN CONST EFI_GUID *PackageListGuid OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
EFI_STATUS,
HiiGetFormSetFromHiiHandle,
(IN EFI_HII_HANDLE Handle,
OUT EFI_IFR_FORM_SET **Buffer,
OUT UINTN *BufferSize)
);
MOCK_FUNCTION_DECLARATION (
CHAR8 *,
HiiGetSupportedLanguages,
(IN EFI_HII_HANDLE HiiHandle)
);
MOCK_FUNCTION_DECLARATION (
EFI_STRING,
HiiConstructConfigHdr,
(IN CONST EFI_GUID *Guid OPTIONAL,
IN CONST CHAR16 *Name OPTIONAL,
IN EFI_HANDLE DriverHandle)
);
MOCK_FUNCTION_DECLARATION (
BOOLEAN,
HiiSetToDefaults,
(IN CONST EFI_STRING Request OPTIONAL,
IN UINT16 DefaultId)
);
MOCK_FUNCTION_DECLARATION (
BOOLEAN,
HiiValidateSettings,
(IN CONST EFI_STRING Request OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
BOOLEAN,
HiiIsConfigHdrMatch,
(IN CONST EFI_STRING ConfigHdr,
IN CONST EFI_GUID *Guid OPTIONAL,
IN CONST CHAR16 *Name OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
BOOLEAN,
HiiGetBrowserData,
(IN CONST EFI_GUID *VariableGuid OPTIONAL,
IN CONST CHAR16 *VariableName OPTIONAL,
IN UINTN BufferSize,
OUT UINT8 *Buffer)
);
MOCK_FUNCTION_DECLARATION (
BOOLEAN,
HiiSetBrowserData,
(IN CONST EFI_GUID *VariableGuid OPTIONAL,
IN CONST CHAR16 *VariableName OPTIONAL,
IN UINTN BufferSize,
IN CONST UINT8 *Buffer,
IN CONST CHAR16 *RequestElement OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
VOID *,
HiiAllocateOpCodeHandle,
()
);
MOCK_FUNCTION_DECLARATION (
VOID,
HiiFreeOpCodeHandle,
(VOID *OpCodeHandle)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateRawOpCodes,
(IN VOID *OpCodeHandle,
IN UINT8 *RawBuffer,
IN UINTN RawBufferSize)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateEndOpCode,
(IN VOID *OpCodeHandle)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateOneOfOptionOpCode,
(IN VOID *OpCodeHandle,
IN UINT16 StringId,
IN UINT8 Flags,
IN UINT8 Type,
IN UINT64 Value)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateDefaultOpCode,
(IN VOID *OpCodeHandle,
IN UINT16 DefaultId,
IN UINT8 Type,
IN UINT64 Value)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateGuidOpCode,
(IN VOID *OpCodeHandle,
IN CONST EFI_GUID *Guid,
IN CONST VOID *GuidOpCode OPTIONAL,
IN UINTN OpCodeSize)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateActionOpCode,
(IN VOID *OpCodeHandle,
IN EFI_QUESTION_ID QuestionId,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN EFI_STRING_ID QuestionConfig)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateSubTitleOpCode,
(IN VOID *OpCodeHandle,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 Flags,
IN UINT8 Scope)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateGotoOpCode,
(IN VOID *OpCodeHandle,
IN EFI_FORM_ID FormId,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN EFI_QUESTION_ID QuestionId)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateGotoExOpCode,
(IN VOID *OpCodeHandle,
IN EFI_FORM_ID RefFormId,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN EFI_QUESTION_ID QuestionId,
IN EFI_QUESTION_ID RefQuestionId,
IN EFI_GUID *RefFormSetId OPTIONAL,
IN EFI_STRING_ID RefDevicePath)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateCheckBoxOpCode,
(IN VOID *OpCodeHandle,
IN EFI_QUESTION_ID QuestionId,
IN EFI_VARSTORE_ID VarStoreId,
IN UINT16 VarOffset,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN UINT8 CheckBoxFlags,
IN VOID *DefaultsOpCodeHandle OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateNumericOpCode,
(IN VOID *OpCodeHandle,
IN EFI_QUESTION_ID QuestionId,
IN EFI_VARSTORE_ID VarStoreId,
IN UINT16 VarOffset,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN UINT8 NumericFlags,
IN UINT64 Minimum,
IN UINT64 Maximum,
IN UINT64 Step,
IN VOID *DefaultsOpCodeHandle OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateStringOpCode,
(IN VOID *OpCodeHandle,
IN EFI_QUESTION_ID QuestionId,
IN EFI_VARSTORE_ID VarStoreId,
IN UINT16 VarOffset,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN UINT8 StringFlags,
IN UINT8 MinSize,
IN UINT8 MaxSize,
IN VOID *DefaultsOpCodeHandle OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateOneOfOpCode,
(IN VOID *OpCodeHandle,
IN EFI_QUESTION_ID QuestionId,
IN EFI_VARSTORE_ID VarStoreId,
IN UINT16 VarOffset,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN UINT8 OneOfFlags,
IN VOID *OptionsOpCodeHandle,
IN VOID *DefaultsOpCodeHandle OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateOrderedListOpCode,
(IN VOID *OpCodeHandle,
IN EFI_QUESTION_ID QuestionId,
IN EFI_VARSTORE_ID VarStoreId,
IN UINT16 VarOffset,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN UINT8 OrderedListFlags,
IN UINT8 DataType,
IN UINT8 MaxContainers,
IN VOID *OptionsOpCodeHandle,
IN VOID *DefaultsOpCodeHandle OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateTextOpCode,
(IN VOID *OpCodeHandle,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN EFI_STRING_ID TextTwo)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateDateOpCode,
(IN VOID *OpCodeHandle,
IN EFI_QUESTION_ID QuestionId,
IN EFI_VARSTORE_ID VarStoreId OPTIONAL,
IN UINT16 VarOffset OPTIONAL,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN UINT8 DateFlags,
IN VOID *DefaultsOpCodeHandle OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
UINT8 *,
HiiCreateTimeOpCode,
(IN VOID *OpCodeHandle,
IN EFI_QUESTION_ID QuestionId,
IN EFI_VARSTORE_ID VarStoreId OPTIONAL,
IN UINT16 VarOffset OPTIONAL,
IN EFI_STRING_ID Prompt,
IN EFI_STRING_ID Help,
IN UINT8 QuestionFlags,
IN UINT8 TimeFlags,
IN VOID *DefaultsOpCodeHandle OPTIONAL)
);
MOCK_FUNCTION_DECLARATION (
EFI_STATUS,
HiiUpdateForm,
(IN EFI_HII_HANDLE HiiHandle,
IN EFI_GUID *FormSetGuid OPTIONAL,
IN EFI_FORM_ID FormId,
IN VOID *StartOpCodeHandle,
IN VOID *EndOpCodeHandle OPTIONAL)
);
};
#endif

View File

@@ -0,0 +1,49 @@
/** @file MockHiiLib.cpp
Google Test mocks for HiiLib
Copyright (c) Microsoft Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <GoogleTest/Library/MockHiiLib.h>
//
// Global Variables that are not const
//
MOCK_INTERFACE_DEFINITION (MockHiiLib);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiRemovePackages, 1, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiSetString, 4, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiGetString, 3, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiGetStringEx, 4, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiGetPackageString, 3, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiGetHiiHandles, 1, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiGetFormSetFromHiiHandle, 3, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiGetSupportedLanguages, 1, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiConstructConfigHdr, 3, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiSetToDefaults, 2, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiValidateSettings, 1, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiIsConfigHdrMatch, 3, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiGetBrowserData, 4, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiSetBrowserData, 5, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiAllocateOpCodeHandle, 0, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiFreeOpCodeHandle, 1, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateRawOpCodes, 3, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateEndOpCode, 1, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateOneOfOptionOpCode, 5, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateDefaultOpCode, 4, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateGuidOpCode, 4, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateActionOpCode, 6, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateSubTitleOpCode, 5, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateGotoOpCode, 6, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateGotoExOpCode, 9, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateCheckBoxOpCode, 9, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateNumericOpCode, 12, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateStringOpCode, 11, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateOneOfOpCode, 10, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateOrderedListOpCode, 12, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateTextOpCode, 4, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateDateOpCode, 9, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiCreateTimeOpCode, 9, EFIAPI);
MOCK_FUNCTION_DEFINITION (MockHiiLib, HiiUpdateForm, 5, EFIAPI);

View File

@@ -0,0 +1,34 @@
## @file MockHiiLib.inf
# Google Test mocks for HiiLib
#
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
[Defines]
INF_VERSION = 0x00010005
BASE_NAME = MockHiiLib
FILE_GUID = d29d29fa-e62f-543a-8d6d-793858ac7f35
MODULE_TYPE = HOST_APPLICATION
VERSION_STRING = 1.0
LIBRARY_CLASS = HiiLib
#
# The following information is for reference only and not required by the build tools.
#
# VALID_ARCHITECTURES = IA32 X64
#
[Sources]
MockHiiLib.cpp
[Packages]
MdeModulePkg/MdeModulePkg.dec
MdePkg/MdePkg.dec
UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
[LibraryClasses]
GoogleTestLib
[BuildOptions]
MSFT:*_*_*_CC_FLAGS = /EHs /bigobj