mirror of
https://gitlab.com/qemu-project/edk2.git
synced 2025-11-03 07:59:00 +08:00
163 lines
5.3 KiB
C
163 lines
5.3 KiB
C
/** @file MockHiiDatabase.h
|
|
This file declares a mock of HiiDatabase Protocol.
|
|
|
|
Copyright (c) Microsoft Corporation.
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
**/
|
|
|
|
#ifndef MOCK_HII_DATABASE_H
|
|
#define MOCK_HII_DATABASE_H
|
|
|
|
#include <Library/GoogleTestLib.h>
|
|
#include <Library/FunctionMockLib.h>
|
|
|
|
extern "C" {
|
|
#include <Uefi.h>
|
|
#include <Protocol/HiiDatabase.h>
|
|
}
|
|
|
|
struct MockHiiDatabaseProtocol {
|
|
MOCK_INTERFACE_DECLARATION (MockHiiDatabaseProtocol);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
NewPackageList,
|
|
(
|
|
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList,
|
|
IN EFI_HANDLE DriverHandle OPTIONAL,
|
|
OUT EFI_HII_HANDLE *Handle
|
|
)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
RemovePackageList,
|
|
(
|
|
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN EFI_HII_HANDLE Handle
|
|
)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
UpdatePackageList,
|
|
(
|
|
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN EFI_HII_HANDLE Handle,
|
|
IN CONST EFI_HII_PACKAGE_LIST_HEADER *PackageList
|
|
)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
ListPackageLists,
|
|
(
|
|
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN UINT8 PackageType,
|
|
IN CONST EFI_GUID *PackageGuid,
|
|
IN OUT UINTN *HandleBufferLength,
|
|
OUT EFI_HII_HANDLE *Handle
|
|
)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
ExportPackageLists,
|
|
(
|
|
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN EFI_HII_HANDLE Handle,
|
|
IN OUT UINTN *BufferSize,
|
|
OUT EFI_HII_PACKAGE_LIST_HEADER *Buffer
|
|
)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
RegisterPackageNotify,
|
|
(
|
|
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN UINT8 PackageType,
|
|
IN CONST EFI_GUID *PackageGuid,
|
|
IN EFI_HII_DATABASE_NOTIFY PackageNotifyFn,
|
|
IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType,
|
|
OUT EFI_HANDLE *NotifyHandle
|
|
)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
UnregisterPackageNotify,
|
|
(
|
|
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN EFI_HANDLE NotificationHandle
|
|
)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
FindKeyboardLayouts,
|
|
(
|
|
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN OUT UINT16 *KeyGuidBufferLength,
|
|
OUT EFI_GUID *KeyGuidBuffer
|
|
)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
GetKeyboardLayout,
|
|
(IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN CONST EFI_GUID *KeyGuid,
|
|
IN OUT UINT16 *KeyboardLayoutLength,
|
|
OUT EFI_HII_KEYBOARD_LAYOUT *KeyboardLayout)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
SetKeyboardLayout,
|
|
(IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN CONST EFI_GUID *KeyGuid)
|
|
);
|
|
|
|
MOCK_FUNCTION_DECLARATION (
|
|
EFI_STATUS,
|
|
GetPackageListHandle,
|
|
(
|
|
IN CONST EFI_HII_DATABASE_PROTOCOL *This,
|
|
IN EFI_HII_HANDLE PackageListHandle,
|
|
OUT EFI_HANDLE *DriverHandle
|
|
)
|
|
);
|
|
};
|
|
|
|
MOCK_INTERFACE_DEFINITION (MockHiiDatabaseProtocol);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, NewPackageList, 4, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, RemovePackageList, 2, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, UpdatePackageList, 3, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, ListPackageLists, 5, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, ExportPackageLists, 4, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, RegisterPackageNotify, 6, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, UnregisterPackageNotify, 2, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, FindKeyboardLayouts, 3, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, GetKeyboardLayout, 4, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, SetKeyboardLayout, 2, EFIAPI);
|
|
MOCK_FUNCTION_DEFINITION (MockHiiDatabaseProtocol, GetPackageListHandle, 3, EFIAPI);
|
|
|
|
#define MOCK_EFI_HII_DATABASE_PROTOCOL_INSTANCE(NAME) \
|
|
EFI_HII_DATABASE_PROTOCOL NAME##_INSTANCE = { \
|
|
NewPackageList, \
|
|
RemovePackageList, \
|
|
UpdatePackageList, \
|
|
ListPackageLists, \
|
|
ExportPackageLists, \
|
|
RegisterPackageNotify, \
|
|
UnregisterPackageNotify, \
|
|
FindKeyboardLayouts, \
|
|
GetKeyboardLayout, \
|
|
SetKeyboardLayout, \
|
|
GetPackageListHandle }; \
|
|
EFI_HII_DATABASE_PROTOCOL *NAME = &NAME##_INSTANCE;
|
|
|
|
#endif
|