/** @file Google Test mocks for UefiLib Copyright (c) 2022, Intel Corporation. All rights reserved. Copyright (c) Microsoft Corporation. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef MOCK_UEFI_LIB_H_ #define MOCK_UEFI_LIB_H_ #include #include extern "C" { #include #include } struct MockUefiLib { MOCK_INTERFACE_DECLARATION (MockUefiLib); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiGetSystemConfigurationTable, (IN EFI_GUID *TableGuid, OUT VOID **Table) ); MOCK_FUNCTION_DECLARATION ( EFI_EVENT, EfiCreateProtocolNotifyEvent, (IN EFI_GUID *ProtocolGuid, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction, IN VOID *NotifyContext OPTIONAL, OUT VOID **Registration) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiNamedEventListen, (IN CONST EFI_GUID *Name, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction, IN CONST VOID *NotifyContext OPTIONAL, OUT VOID *Registration OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiNamedEventSignal, (IN CONST EFI_GUID *Name) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiEventGroupSignal, (IN CONST EFI_GUID *EventGroup) ); MOCK_FUNCTION_DECLARATION ( VOID, EfiEventEmptyFunction, (IN EFI_EVENT Event, IN VOID *Context) ); MOCK_FUNCTION_DECLARATION ( EFI_TPL, EfiGetCurrentTpl, () ); MOCK_FUNCTION_DECLARATION ( EFI_LOCK *, EfiInitializeLock, (IN OUT EFI_LOCK *Lock, IN EFI_TPL Priority) ); MOCK_FUNCTION_DECLARATION ( VOID, EfiAcquireLock, (IN EFI_LOCK *Lock) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiAcquireLockOrFail, (IN EFI_LOCK *Lock) ); MOCK_FUNCTION_DECLARATION ( VOID, EfiReleaseLock, (IN EFI_LOCK *Lock) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiTestManagedDevice, (IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE DriverBindingHandle, IN CONST EFI_GUID *ProtocolGuid) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiTestChildHandle, (IN CONST EFI_HANDLE ControllerHandle, IN CONST EFI_HANDLE ChildHandle, IN CONST EFI_GUID *ProtocolGuid) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, IsLanguageSupported, (IN CONST CHAR8 *SupportedLanguages, IN CONST CHAR8 *TargetLanguage) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, LookupUnicodeString, (IN CONST CHAR8 *Language, IN CONST CHAR8 *SupportedLanguages, IN CONST EFI_UNICODE_STRING_TABLE *UnicodeStringTable, OUT CHAR16 **UnicodeString) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, LookupUnicodeString2, (IN CONST CHAR8 *Language, IN CONST CHAR8 *SupportedLanguages, IN CONST EFI_UNICODE_STRING_TABLE *UnicodeStringTable, OUT CHAR16 **UnicodeString, IN BOOLEAN Iso639Language) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, AddUnicodeString, (IN CONST CHAR8 *Language, IN CONST CHAR8 *SupportedLanguages, IN OUT EFI_UNICODE_STRING_TABLE **UnicodeStringTable, IN CONST CHAR16 *UnicodeString) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, AddUnicodeString2, (IN CONST CHAR8 *Language, IN CONST CHAR8 *SupportedLanguages, IN OUT EFI_UNICODE_STRING_TABLE **UnicodeStringTable, IN CONST CHAR16 *UnicodeString, IN BOOLEAN Iso639Language) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, FreeUnicodeStringTable, (IN EFI_UNICODE_STRING_TABLE *UnicodeStringTable) ); 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) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, GetVariable3, (IN CONST CHAR16 *Name, IN CONST EFI_GUID *Guid, OUT VOID **Value, OUT UINTN *Size OPTIONAL, OUT UINT32 *Attr OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( UINTN, GetGlyphWidth, (IN CHAR16 UnicodeChar) ); MOCK_FUNCTION_DECLARATION ( UINTN, UnicodeStringDisplayLength, (IN CONST CHAR16 *String) ); MOCK_FUNCTION_DECLARATION ( VOID, EfiSignalEventReadyToBoot, () ); MOCK_FUNCTION_DECLARATION ( VOID, EfiSignalEventLegacyBoot, () ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiCreateEventLegacyBoot, (OUT EFI_EVENT *LegacyBootEvent) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiCreateEventLegacyBootEx, (IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL, IN VOID *NotifyContext OPTIONAL, OUT EFI_EVENT *LegacyBootEvent) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiCreateEventReadyToBoot, (OUT EFI_EVENT *ReadyToBootEvent) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiCreateEventReadyToBootEx, (IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction OPTIONAL, IN VOID *NotifyContext OPTIONAL, OUT EFI_EVENT *ReadyToBootEvent) ); MOCK_FUNCTION_DECLARATION ( VOID, EfiInitializeFwVolDevicepathNode, (IN OUT MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvDevicePathNode, IN CONST EFI_GUID *NameGuid) ); MOCK_FUNCTION_DECLARATION ( EFI_GUID *, EfiGetNameGuidFromFwVolDevicePathNode, (IN CONST MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvDevicePathNode) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiLibInstallDriverBinding, (IN CONST EFI_HANDLE ImageHandle, IN CONST EFI_SYSTEM_TABLE *SystemTable, IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE DriverBindingHandle) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiLibUninstallDriverBinding, (IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiLibInstallAllDriverProtocols, (IN CONST EFI_HANDLE ImageHandle, IN CONST EFI_SYSTEM_TABLE *SystemTable, IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE DriverBindingHandle, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiLibUninstallAllDriverProtocols, (IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiLibInstallDriverBindingComponentName2, (IN CONST EFI_HANDLE ImageHandle, IN CONST EFI_SYSTEM_TABLE *SystemTable, IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE DriverBindingHandle, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiLibUninstallDriverBindingComponentName2, (IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiLibInstallAllDriverProtocols2, (IN CONST EFI_HANDLE ImageHandle, IN CONST EFI_SYSTEM_TABLE *SystemTable, IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN EFI_HANDLE DriverBindingHandle, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2 OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiLibUninstallAllDriverProtocols2, (IN EFI_DRIVER_BINDING_PROTOCOL *DriverBinding, IN CONST EFI_COMPONENT_NAME_PROTOCOL *ComponentName OPTIONAL, IN CONST EFI_COMPONENT_NAME2_PROTOCOL *ComponentName2 OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION_PROTOCOL *DriverConfiguration OPTIONAL, IN CONST EFI_DRIVER_CONFIGURATION2_PROTOCOL *DriverConfiguration2 OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS_PROTOCOL *DriverDiagnostics OPTIONAL, IN CONST EFI_DRIVER_DIAGNOSTICS2_PROTOCOL *DriverDiagnostics2 OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiLocateProtocolBuffer, (IN EFI_GUID *Protocol, OUT UINTN *NoProtocols, OUT VOID ***Buffer) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, EfiOpenFileByDevicePath, (IN OUT EFI_DEVICE_PATH_PROTOCOL **FilePath, OUT EFI_FILE_PROTOCOL **File, IN UINT64 OpenMode, IN UINT64 Attributes) ); MOCK_FUNCTION_DECLARATION ( EFI_ACPI_COMMON_HEADER *, EfiLocateNextAcpiTable, (IN UINT32 Signature, IN EFI_ACPI_COMMON_HEADER *PreviousTable OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( EFI_ACPI_COMMON_HEADER *, EfiLocateFirstAcpiTable, (IN UINT32 Signature) ); }; #endif