MdePkg: Add MockUefiBootServicesTableLib
This commit adds a mock library for UefiBootServicesTableLib. 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: Doug Flick [MSFT] <doug.edk2@gmail.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
/** @file
|
||||
Google Test mocks for UefiBootServicesTableLib
|
||||
|
||||
Copyright (c) Microsoft Corporation.
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
#include <GoogleTest/Library/MockUefiBootServicesTableLib.h>
|
||||
|
||||
MOCK_INTERFACE_DEFINITION (MockUefiBootServicesTableLib);
|
||||
MOCK_FUNCTION_DEFINITION (MockUefiBootServicesTableLib, gBS_GetMemoryMap, 5, EFIAPI);
|
||||
MOCK_FUNCTION_DEFINITION (MockUefiBootServicesTableLib, gBS_CreateEvent, 5, EFIAPI);
|
||||
MOCK_FUNCTION_DEFINITION (MockUefiBootServicesTableLib, gBS_CloseEvent, 1, EFIAPI);
|
||||
MOCK_FUNCTION_DEFINITION (MockUefiBootServicesTableLib, gBS_HandleProtocol, 3, EFIAPI);
|
||||
MOCK_FUNCTION_DEFINITION (MockUefiBootServicesTableLib, gBS_LocateProtocol, 3, EFIAPI);
|
||||
MOCK_FUNCTION_DEFINITION (MockUefiBootServicesTableLib, gBS_CreateEventEx, 6, EFIAPI);
|
||||
|
||||
static EFI_BOOT_SERVICES LocalBs = {
|
||||
{ 0, 0, 0, 0, 0 }, // EFI_TABLE_HEADER
|
||||
NULL, // EFI_RAISE_TPL
|
||||
NULL, // EFI_RESTORE_TPL
|
||||
NULL, // EFI_ALLOCATE_PAGES
|
||||
NULL, // EFI_FREE_PAGES
|
||||
gBS_GetMemoryMap, // EFI_GET_MEMORY_MAP
|
||||
NULL, // EFI_ALLOCATE_POOL
|
||||
NULL, // EFI_FREE_POOL
|
||||
gBS_CreateEvent, // EFI_CREATE_EVENT
|
||||
NULL, // EFI_SET_TIMER
|
||||
NULL, // EFI_WAIT_FOR_EVENT
|
||||
NULL, // EFI_SIGNAL_EVENT
|
||||
gBS_CloseEvent, // EFI_CLOSE_EVENT
|
||||
NULL, // EFI_CHECK_EVENT
|
||||
NULL, // EFI_INSTALL_PROTOCOL_INTERFACE
|
||||
NULL, // EFI_REINSTALL_PROTOCOL_INTERFACE
|
||||
NULL, // EFI_UNINSTALL_PROTOCOL_INTERFACE
|
||||
gBS_HandleProtocol, // EFI_HANDLE_PROTOCOL
|
||||
NULL, // VOID
|
||||
NULL, // EFI_REGISTER_PROTOCOL_NOTIFY
|
||||
NULL, // EFI_LOCATE_HANDLE
|
||||
NULL, // EFI_LOCATE_DEVICE_PATH
|
||||
NULL, // EFI_INSTALL_CONFIGURATION_TABLE
|
||||
NULL, // EFI_IMAGE_LOAD
|
||||
NULL, // EFI_IMAGE_START
|
||||
NULL, // EFI_EXIT
|
||||
NULL, // EFI_IMAGE_UNLOAD
|
||||
NULL, // EFI_EXIT_BOOT_SERVICES
|
||||
NULL, // EFI_GET_NEXT_MONOTONIC_COUNT
|
||||
NULL, // EFI_STALL
|
||||
NULL, // EFI_SET_WATCHDOG_TIMER
|
||||
NULL, // EFI_CONNECT_CONTROLLER
|
||||
NULL, // EFI_DISCONNECT_CONTROLLER
|
||||
NULL, // EFI_OPEN_PROTOCOL
|
||||
NULL, // EFI_CLOSE_PROTOCOL
|
||||
NULL, // EFI_OPEN_PROTOCOL_INFORMATION
|
||||
NULL, // EFI_PROTOCOLS_PER_HANDLE
|
||||
NULL, // EFI_LOCATE_HANDLE_BUFFER
|
||||
gBS_LocateProtocol, // EFI_LOCATE_PROTOCOL
|
||||
NULL, // EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES
|
||||
NULL, // EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES
|
||||
NULL, // EFI_CALCULATE_CRC32
|
||||
NULL, // EFI_COPY_MEM
|
||||
NULL, // EFI_SET_MEM
|
||||
gBS_CreateEventEx // EFI_CREATE_EVENT_EX
|
||||
};
|
||||
|
||||
extern "C" {
|
||||
EFI_BOOT_SERVICES *gBS = &LocalBs;
|
||||
EFI_HANDLE gImageHandle = NULL;
|
||||
EFI_SYSTEM_TABLE *gST = NULL;
|
||||
}
|
@@ -0,0 +1,32 @@
|
||||
## @file
|
||||
# Mock implementation of the UEFI Boot Services Table Library.
|
||||
#
|
||||
# Copyright (c) Microsoft Corporation.
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = MockUefiBootServicesTableLib
|
||||
FILE_GUID = 67EA4614-E276-49EC-9AE6-B97ACCEA676E
|
||||
MODULE_TYPE = HOST_APPLICATION
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = UefiBootServicesTableLib|HOST_APPLICATION
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 EBC
|
||||
#
|
||||
|
||||
[Sources]
|
||||
MockUefiBootServicesTableLib.cpp
|
||||
|
||||
[LibraryClasses]
|
||||
GoogleTestLib
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
|
||||
|
||||
[BuildOptions]
|
||||
MSFT:*_*_*_CC_FLAGS = /EHsc
|
Reference in New Issue
Block a user