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:
Doug Flick
2024-05-08 22:56:30 -07:00
committed by mergify[bot]
parent 1904a64bcc
commit 72a9ef1c8a
4 changed files with 180 additions and 0 deletions

View File

@ -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;
}