mirror of
https://github.com/acidanthera/audk.git
synced 2025-08-18 16:18:12 +02:00
374 lines
11 KiB
C
374 lines
11 KiB
C
/** @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 <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,
|
|
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
|