mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 07:34:06 +02:00
MdePkg: Add gmock examples
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4389 Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Signed-off-by: Chris Johnson <chris.n.johnson@intel.com> Acked-by: Liming Gao <gaoliming@byosoft.com.cn> Reviewed-by: Oliver Smith-Denny <osde@linux.microsoft.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
parent
e4af282e9f
commit
09458c2b0b
@ -27,6 +27,7 @@
|
|||||||
[Includes]
|
[Includes]
|
||||||
Include
|
Include
|
||||||
Test/UnitTest/Include
|
Test/UnitTest/Include
|
||||||
|
Test/Mock/Include
|
||||||
|
|
||||||
[Includes.IA32]
|
[Includes.IA32]
|
||||||
Include/Ia32
|
Include/Ia32
|
||||||
|
@ -34,3 +34,5 @@
|
|||||||
# Build HOST_APPLICATION Libraries
|
# Build HOST_APPLICATION Libraries
|
||||||
#
|
#
|
||||||
MdePkg/Library/BaseLib/UnitTestHostBaseLib.inf
|
MdePkg/Library/BaseLib/UnitTestHostBaseLib.inf
|
||||||
|
MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.inf
|
||||||
|
MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib/MockUefiRuntimeServicesTableLib.inf
|
||||||
|
39
MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h
Normal file
39
MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/** @file
|
||||||
|
Google Test mocks for UefiLib
|
||||||
|
|
||||||
|
Copyright (c) 2022, Intel Corporation. All rights reserved.
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef MOCK_UEFI_LIB_H_
|
||||||
|
#define MOCK_UEFI_LIB_H_
|
||||||
|
|
||||||
|
#include <Library/GoogleTestLib.h>
|
||||||
|
#include <Library/FunctionMockLib.h>
|
||||||
|
extern "C" {
|
||||||
|
#include <Uefi.h>
|
||||||
|
#include <Library/UefiLib.h>
|
||||||
|
}
|
||||||
|
|
||||||
|
struct MockUefiLib {
|
||||||
|
MOCK_INTERFACE_DECLARATION (MockUefiLib);
|
||||||
|
|
||||||
|
MOCK_FUNCTION_DECLARATION (
|
||||||
|
EFI_STATUS,
|
||||||
|
GetVariable2,
|
||||||
|
(IN CONST CHAR16 *Name,
|
||||||
|
IN CONST EFI_GUID *Guid,
|
||||||
|
OUT VOID **Value,
|
||||||
|
OUT UINTN *Size OPTIONAL)
|
||||||
|
);
|
||||||
|
|
||||||
|
MOCK_FUNCTION_DECLARATION (
|
||||||
|
EFI_STATUS,
|
||||||
|
GetEfiGlobalVariable2,
|
||||||
|
(IN CONST CHAR16 *Name,
|
||||||
|
OUT VOID **Value,
|
||||||
|
OUT UINTN *Size OPTIONAL)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,42 @@
|
|||||||
|
/** @file
|
||||||
|
Google Test mocks for UefiRuntimeServicesTableLib
|
||||||
|
|
||||||
|
Copyright (c) 2022, Intel Corporation. All rights reserved.
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef MOCK_UEFI_RUNTIME_SERVICES_TABLE_LIB_H_
|
||||||
|
#define MOCK_UEFI_RUNTIME_SERVICES_TABLE_LIB_H_
|
||||||
|
|
||||||
|
#include <Library/GoogleTestLib.h>
|
||||||
|
#include <Library/FunctionMockLib.h>
|
||||||
|
extern "C" {
|
||||||
|
#include <Uefi.h>
|
||||||
|
#include <Library/UefiRuntimeServicesTableLib.h>
|
||||||
|
}
|
||||||
|
|
||||||
|
struct MockUefiRuntimeServicesTableLib {
|
||||||
|
MOCK_INTERFACE_DECLARATION (MockUefiRuntimeServicesTableLib);
|
||||||
|
|
||||||
|
MOCK_FUNCTION_DECLARATION (
|
||||||
|
EFI_STATUS,
|
||||||
|
gRT_GetVariable,
|
||||||
|
(IN CHAR16 *VariableName,
|
||||||
|
IN EFI_GUID *VendorGuid,
|
||||||
|
OUT UINT32 *Attributes OPTIONAL,
|
||||||
|
IN OUT UINTN *DataSize,
|
||||||
|
OUT VOID *Data)
|
||||||
|
);
|
||||||
|
|
||||||
|
MOCK_FUNCTION_DECLARATION (
|
||||||
|
EFI_STATUS,
|
||||||
|
gRT_SetVariable,
|
||||||
|
(IN CHAR16 *VariableName,
|
||||||
|
IN EFI_GUID *VendorGuid,
|
||||||
|
IN UINT32 Attributes,
|
||||||
|
IN UINTN DataSize,
|
||||||
|
IN VOID *Data)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -0,0 +1,12 @@
|
|||||||
|
/** @file
|
||||||
|
Google Test mocks for UefiLib
|
||||||
|
|
||||||
|
Copyright (c) 2022, Intel Corporation. All rights reserved.
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
**/
|
||||||
|
#include <GoogleTest/Library/MockUefiLib.h>
|
||||||
|
|
||||||
|
MOCK_INTERFACE_DEFINITION(MockUefiLib);
|
||||||
|
|
||||||
|
MOCK_FUNCTION_DEFINITION(MockUefiLib, GetVariable2, 4, EFIAPI);
|
||||||
|
MOCK_FUNCTION_DEFINITION(MockUefiLib, GetEfiGlobalVariable2, 3, EFIAPI);
|
@ -0,0 +1,33 @@
|
|||||||
|
## @file
|
||||||
|
# Google Test mocks for UefiLib
|
||||||
|
#
|
||||||
|
# Copyright (c) 2022, Intel Corporation. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
##
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = MockUefiLib
|
||||||
|
FILE_GUID = 47211F7A-6D90-4DFB-BDF9-610B69197C2E
|
||||||
|
MODULE_TYPE = HOST_APPLICATION
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = UefiLib
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following information is for reference only and not required by the build tools.
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32 X64
|
||||||
|
#
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
MockUefiLib.cpp
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
GoogleTestLib
|
||||||
|
|
||||||
|
[BuildOptions]
|
||||||
|
MSFT:*_*_*_CC_FLAGS = /EHsc
|
@ -0,0 +1,40 @@
|
|||||||
|
/** @file
|
||||||
|
Google Test mocks for UefiRuntimeServicesTableLib
|
||||||
|
|
||||||
|
Copyright (c) 2022, Intel Corporation. All rights reserved.
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
**/
|
||||||
|
#include <GoogleTest/Library/MockUefiRuntimeServicesTableLib.h>
|
||||||
|
|
||||||
|
MOCK_INTERFACE_DEFINITION(MockUefiRuntimeServicesTableLib);
|
||||||
|
|
||||||
|
MOCK_FUNCTION_DEFINITION(MockUefiRuntimeServicesTableLib, gRT_GetVariable, 5, EFIAPI);
|
||||||
|
MOCK_FUNCTION_DEFINITION(MockUefiRuntimeServicesTableLib, gRT_SetVariable, 5, EFIAPI);
|
||||||
|
|
||||||
|
static EFI_RUNTIME_SERVICES localRt = {
|
||||||
|
{0}, // EFI_TABLE_HEADER
|
||||||
|
|
||||||
|
NULL, // EFI_GET_TIME
|
||||||
|
NULL, // EFI_SET_TIME
|
||||||
|
NULL, // EFI_GET_WAKEUP_TIME
|
||||||
|
NULL, // EFI_SET_WAKEUP_TIME
|
||||||
|
|
||||||
|
NULL, // EFI_SET_VIRTUAL_ADDRESS_MAP
|
||||||
|
NULL, // EFI_CONVERT_POINTER
|
||||||
|
|
||||||
|
gRT_GetVariable, // EFI_GET_VARIABLE
|
||||||
|
NULL, // EFI_GET_NEXT_VARIABLE_NAME
|
||||||
|
gRT_SetVariable, // EFI_SET_VARIABLE
|
||||||
|
|
||||||
|
NULL, // EFI_GET_NEXT_HIGH_MONO_COUNT
|
||||||
|
NULL, // EFI_RESET_SYSTEM
|
||||||
|
|
||||||
|
NULL, // EFI_UPDATE_CAPSULE
|
||||||
|
NULL, // EFI_QUERY_CAPSULE_CAPABILITIES
|
||||||
|
|
||||||
|
NULL, // EFI_QUERY_VARIABLE_INFO
|
||||||
|
};
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
EFI_RUNTIME_SERVICES* gRT = &localRt;
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
## @file
|
||||||
|
# Google Test mocks for UefiRuntimeServicesTableLib
|
||||||
|
#
|
||||||
|
# Copyright (c) 2022, Intel Corporation. All rights reserved.
|
||||||
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
##
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010005
|
||||||
|
BASE_NAME = MockUefiRuntimeServicesTableLib
|
||||||
|
FILE_GUID = 0A0E13C2-4176-4293-89C7-C2497AA31B92
|
||||||
|
MODULE_TYPE = HOST_APPLICATION
|
||||||
|
VERSION_STRING = 1.0
|
||||||
|
LIBRARY_CLASS = UefiRuntimeServicesTableLib
|
||||||
|
|
||||||
|
#
|
||||||
|
# The following information is for reference only and not required by the build tools.
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32 X64
|
||||||
|
#
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
MockUefiRuntimeServicesTableLib.cpp
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
MdePkg/MdePkg.dec
|
||||||
|
UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
|
||||||
|
|
||||||
|
[LibraryClasses]
|
||||||
|
GoogleTestLib
|
||||||
|
|
||||||
|
[BuildOptions]
|
||||||
|
MSFT:*_*_*_CC_FLAGS = /EHsc
|
Loading…
x
Reference in New Issue
Block a user