mirror of https://github.com/acidanthera/audk.git
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:
parent
1904a64bcc
commit
72a9ef1c8a
|
@ -43,6 +43,7 @@
|
|||
MdePkg/Library/BaseLib/UnitTestHostBaseLib.inf
|
||||
MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.inf
|
||||
MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib/MockUefiRuntimeServicesTableLib.inf
|
||||
MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefiBootServicesTableLib.inf
|
||||
MdePkg/Test/Mock/Library/GoogleTest/MockPeiServicesLib/MockPeiServicesLib.inf
|
||||
MdePkg/Test/Mock/Library/GoogleTest/MockHobLib/MockHobLib.inf
|
||||
MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
/** @file
|
||||
Google Test mocks for UefiBootServicesTableLib
|
||||
|
||||
Copyright (c) Microsoft Corporation.
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
|
||||
#ifndef MOCK_UEFI_BOOT_SERVICES_TABLE_LIB_H_
|
||||
#define MOCK_UEFI_BOOT_SERVICES_TABLE_LIB_H_
|
||||
|
||||
#include <Library/GoogleTestLib.h>
|
||||
#include <Library/FunctionMockLib.h>
|
||||
extern "C" {
|
||||
#include <Uefi.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
}
|
||||
|
||||
//
|
||||
// Declarations to handle usage of the UefiBootServiceTableLib by creating mock
|
||||
//
|
||||
struct MockUefiBootServicesTableLib {
|
||||
MOCK_INTERFACE_DECLARATION (MockUefiBootServicesTableLib);
|
||||
|
||||
MOCK_FUNCTION_DECLARATION (
|
||||
EFI_STATUS,
|
||||
gBS_GetMemoryMap,
|
||||
(IN OUT UINTN *MemoryMapSize,
|
||||
OUT EFI_MEMORY_DESCRIPTOR *MemoryMap,
|
||||
OUT UINTN *MapKey,
|
||||
OUT UINTN *DescriptorSize,
|
||||
OUT UINT32 *DescriptorVersion)
|
||||
);
|
||||
|
||||
MOCK_FUNCTION_DECLARATION (
|
||||
EFI_STATUS,
|
||||
gBS_CreateEvent,
|
||||
(IN UINT32 Type,
|
||||
IN EFI_TPL NotifyTpl,
|
||||
IN EFI_EVENT_NOTIFY NotifyFunction,
|
||||
IN VOID *NotifyContext,
|
||||
OUT EFI_EVENT *Event)
|
||||
);
|
||||
|
||||
MOCK_FUNCTION_DECLARATION (
|
||||
EFI_STATUS,
|
||||
gBS_CloseEvent,
|
||||
(IN EFI_EVENT Event)
|
||||
);
|
||||
|
||||
MOCK_FUNCTION_DECLARATION (
|
||||
EFI_STATUS,
|
||||
gBS_HandleProtocol,
|
||||
(IN EFI_HANDLE Handle,
|
||||
IN EFI_GUID *Protocol,
|
||||
OUT VOID **Interface)
|
||||
);
|
||||
|
||||
MOCK_FUNCTION_DECLARATION (
|
||||
EFI_STATUS,
|
||||
gBS_LocateProtocol,
|
||||
(IN EFI_GUID *Protocol,
|
||||
IN VOID *Registration OPTIONAL,
|
||||
OUT VOID **Interface)
|
||||
);
|
||||
|
||||
MOCK_FUNCTION_DECLARATION (
|
||||
EFI_STATUS,
|
||||
gBS_CreateEventEx,
|
||||
(IN UINT32 Type,
|
||||
IN EFI_TPL NotifyTpl,
|
||||
IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL,
|
||||
IN CONST VOID *NotifyContext OPTIONAL,
|
||||
IN CONST EFI_GUID *EventGroup OPTIONAL,
|
||||
OUT EFI_EVENT *Event)
|
||||
);
|
||||
};
|
||||
|
||||
#endif // MOCK_UEFI_BOOT_SERVICES_TABLE_LIB_H_
|
|
@ -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
|
Loading…
Reference in New Issue