I only see a few services from the UEFI Boot Services Table supported.

I recommend the commit message be updated to indicate it is only partial 
supppot and list the APIs supported.

Mike


> -----Original Message-----
> From: Huang, LakX <lakx.hu...@intel.com>
> Sent: Monday, June 19, 2023 1:38 AM
> To: devel@edk2.groups.io
> Cc: Huang, LakX <lakx.hu...@intel.com>; Kinney, Michael D
> <michael.d.kin...@intel.com>; Gao, Liming <gaolim...@byosoft.com.cn>; Liu,
> Zhiguang <zhiguang....@intel.com>
> Subject: [PATCH v1] MdePkg: Add UefiBootServicesTableLib gmock support
> 
> From: LakX Huang <lakx.hu...@intel.com>
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4485
> 
> Add Google Mock Library for UefiBootServicesTableLib
> 
> Cc: Michael D Kinney <michael.d.kin...@intel.com>
> Cc: Liming Gao <gaolim...@byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang....@intel.com>
> 
> Signed-off-by: LakX Huang <lakx.hu...@intel.com>
> ---
>  MdePkg/Test/MdePkgHostTest.dsc                |  1 +
>  .../Library/MockUefiBootServicesTableLib.h    | 71 ++++++++++++++++++
>  .../MockUefiBootServicesTableLib.cpp          | 75 +++++++++++++++++++
>  .../MockUefiBootServicesTableLib.inf          | 33 ++++++++
>  4 files changed, 180 insertions(+)
>  create mode 100644
> MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiBootServicesTableLib.h
>  create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefiBo
> otServicesTableLib.cpp
>  create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefiBo
> otServicesTableLib.inf
> 
> diff --git a/MdePkg/Test/MdePkgHostTest.dsc
> b/MdePkg/Test/MdePkgHostTest.dsc
> index 529ea69024..872db61b2f 100644
> --- a/MdePkg/Test/MdePkgHostTest.dsc
> +++ b/MdePkg/Test/MdePkgHostTest.dsc
> @@ -38,3 +38,4 @@
> 
> MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib/MockUef
> iRuntimeServicesTableLib.inf
> 
> 
> MdePkg/Test/Mock/Library/GoogleTest/MockPeiServicesLib/MockPeiServicesLib.i
> nf
> 
>    MdePkg/Test/Mock/Library/GoogleTest/MockHobLib/MockHobLib.inf
> 
> +
> MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefiBo
> otServicesTableLib.inf
> \ No newline at end of file
> diff --git
> a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiBootServicesTableLib.
> h
> b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiBootServicesTableLib.
> h
> new file mode 100644
> index 0000000000..e36c6efdb9
> --- /dev/null
> +++
> b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiBootServicesTableLib.
> h
> @@ -0,0 +1,71 @@
> +/** @file
> 
> +  Google Test mocks for UefiBootServicesTableLib
> 
> +
> 
> +  Copyright (c) 2022, Intel Corporation. All rights reserved.
> 
> +  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>
> 
> +}
> 
> +
> 
> +struct MockUefiBootServicesTableLib {
> 
> +  MOCK_INTERFACE_DECLARATION (MockUefiBootServicesTableLib);
> 
> +
> 
> +  MOCK_FUNCTION_DECLARATION (
> 
> +    EFI_STATUS,
> 
> +    gBS_LocateProtocol,
> 
> +    (IN   EFI_GUID  *Protocol,
> 
> +     IN   VOID      *Registration  OPTIONAL,
> 
> +     OUT  VOID      **Interface)
> 
> +    );
> 
> +
> 
> +  MOCK_FUNCTION_DECLARATION (
> 
> +    EFI_STATUS,
> 
> +    gBS_LocateHandleBuffer,
> 
> +    (IN   EFI_LOCATE_SEARCH_TYPE    SearchType,
> 
> +     IN   EFI_GUID                  *Protocol       OPTIONAL,
> 
> +     IN   VOID                      *SearchKey      OPTIONAL,
> 
> +     OUT  UINTN                     *NoHandles,
> 
> +     OUT  EFI_HANDLE                **Buffer)
> 
> +    );
> 
> +
> 
> +  MOCK_FUNCTION_DECLARATION (
> 
> +    EFI_STATUS,
> 
> +    gBS_DisconnectController,
> 
> +    (IN  EFI_HANDLE   ControllerHandle,
> 
> +     IN  EFI_HANDLE   DriverImageHandle  OPTIONAL,
> 
> +     IN  EFI_HANDLE   ChildHandle        OPTIONAL)
> 
> +    );
> 
> +
> 
> +  MOCK_FUNCTION_DECLARATION (
> 
> +    EFI_STATUS,
> 
> +    gBS_FreePool,
> 
> +    (IN  VOID  *Buffer)
> 
> +    );
> 
> +
> 
> +  MOCK_FUNCTION_DECLARATION (
> 
> +    EFI_STATUS,
> 
> +    gBS_ConnectController,
> 
> +    (IN  EFI_HANDLE                 ControllerHandle,
> 
> +     IN  EFI_HANDLE                 *DriverImageHandle    OPTIONAL,
> 
> +     IN  EFI_DEVICE_PATH_PROTOCOL   *RemainingDevicePath  OPTIONAL,
> 
> +     IN  BOOLEAN                    Recursive)
> 
> +    );
> 
> +
> 
> +  MOCK_FUNCTION_DECLARATION (
> 
> +    EFI_STATUS,
> 
> +    gBS_HandleProtocol,
> 
> +    (IN  EFI_HANDLE    Handle,
> 
> +     IN  EFI_GUID      *Protocol,
> 
> +     OUT VOID          **Interface)
> 
> +    );
> 
> +};
> 
> +
> 
> +#endif
> 
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefi
> BootServicesTableLib.cpp
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefi
> BootServicesTableLib.cpp
> new file mode 100644
> index 0000000000..79964d18f9
> --- /dev/null
> +++
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefi
> BootServicesTableLib.cpp
> @@ -0,0 +1,75 @@
> +/** @file
> 
> +  Google Test mocks for UefiBootServicesTableLib
> 
> +
> 
> +  Copyright (c) 2022, Intel Corporation. All rights reserved.
> 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +**/
> 
> +#include <GoogleTest/Library/MockUefiBootServicesTableLib.h>
> 
> +
> 
> +MOCK_INTERFACE_DEFINITION(MockUefiBootServicesTableLib);
> 
> +
> 
> +MOCK_FUNCTION_DEFINITION(MockUefiBootServicesTableLib, gBS_LocateProtocol,
> 3, EFIAPI);
> 
> +MOCK_FUNCTION_DEFINITION(MockUefiBootServicesTableLib,
> gBS_LocateHandleBuffer, 5, EFIAPI);
> 
> +MOCK_FUNCTION_DEFINITION(MockUefiBootServicesTableLib,
> gBS_DisconnectController, 3, EFIAPI);
> 
> +MOCK_FUNCTION_DEFINITION(MockUefiBootServicesTableLib, gBS_FreePool, 1,
> EFIAPI);
> 
> +MOCK_FUNCTION_DEFINITION(MockUefiBootServicesTableLib,
> gBS_ConnectController, 4, EFIAPI);
> 
> +MOCK_FUNCTION_DEFINITION(MockUefiBootServicesTableLib, gBS_HandleProtocol,
> 3, EFIAPI);
> 
> +
> 
> +
> 
> +static EFI_BOOT_SERVICES localBs = {
> 
> +  {
> 
> +    (UINT64)NULL,                                         // Signature
> 
> +    0,                                                    // Revision
> 
> +    0,                                                    // HeaderSize
> 
> +    0,                                                    // CRC32
> 
> +    0                                                     // Reserved
> 
> +  },
> 
> +  NULL,                                                   // RaiseTPL
> 
> +  NULL,                                                   // RestoreTPL
> 
> +  NULL,                                                   // AllocatePages
> 
> +  NULL,                                                   // FreePages
> 
> +  NULL,                                                   // GetMemoryMap
> 
> +  NULL,                                                   // AllocatePool
> 
> +  (EFI_FREE_POOL)gBS_FreePool,                            // FreePool
> 
> +  NULL,                                                   // CreateEvent
> 
> +  NULL,                                                   // SetTimer
> 
> +  NULL,                                                   // WaitForEvent
> 
> +  NULL,                                                   // SignalEvent
> 
> +  NULL,                                                   // CloseEvent
> 
> +  NULL,                                                   // CheckEvent
> 
> +  NULL,                                                   //
> InstallProtocolInterface
> 
> +  NULL,                                                   //
> ReinstallProtocolInterface
> 
> +  NULL,                                                   //
> UninstallProtocolInterface
> 
> +  (EFI_HANDLE_PROTOCOL)gBS_HandleProtocol,                //
> HandleProtocol
> 
> +  (VOID *)NULL,                                           // Reserved
> 
> +  NULL,                                                   //
> RegisterProtocolNotify
> 
> +  NULL,                                                   // LocateHandle
> 
> +  NULL,                                                   //
> LocateDevicePath
> 
> +  NULL,                                                   //
> InstallConfigurationTable
> 
> +  NULL,                                                   // LoadImage
> 
> +  NULL,                                                   // StartImage
> 
> +  NULL,                                                   // Exit
> 
> +  NULL,                                                   // UnloadImage
> 
> +  NULL,                                                   //
> ExitBootServices
> 
> +  NULL,                                                   //
> GetNextMonotonicCount
> 
> +  NULL,                                                   // Stall
> 
> +  NULL,                                                   //
> SetWatchdogTimer
> 
> +  (EFI_CONNECT_CONTROLLER)gBS_ConnectController,          //
> ConnectController
> 
> +  (EFI_DISCONNECT_CONTROLLER)gBS_DisconnectController,    //
> DisconnectController
> 
> +  NULL,                                                   // OpenProtocol
> 
> +  NULL,                                                   // CloseProtocol
> 
> +  NULL,                                                   //
> OpenProtocolInformation
> 
> +  NULL,                                                   //
> ProtocolsPerHandle
> 
> +  (EFI_LOCATE_HANDLE_BUFFER)gBS_LocateHandleBuffer,       //
> LocateHandleBuffer
> 
> +  (EFI_LOCATE_PROTOCOL)gBS_LocateProtocol,                //
> LocateProtocol
> 
> +  NULL,                                                   //
> InstallMultipleProtocolInterfaces
> 
> +  NULL,                                                   //
> UninstallMultipleProtocolInterfaces
> 
> +  NULL,                                                   //
> CalculateCrc32
> 
> +  NULL,                                                   // CopyMem
> 
> +  NULL,                                                   // SetMem
> 
> +  NULL                                                    // CreateEventEx
> 
> +};
> 
> +
> 
> +extern "C" {
> 
> +  EFI_BOOT_SERVICES* gBS = &localBs;
> 
> +}
> \ No newline at end of file
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefi
> BootServicesTableLib.inf
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefi
> BootServicesTableLib.inf
> new file mode 100644
> index 0000000000..e8dcca8fb8
> --- /dev/null
> +++
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiBootServicesTableLib/MockUefi
> BootServicesTableLib.inf
> @@ -0,0 +1,33 @@
> +## @file
> 
> +# Google Test mocks for UefiBootServicesTableLib
> 
> +#
> 
> +# Copyright (c) 2023, Intel Corporation. All rights reserved.
> 
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> 
> +##
> 
> +
> 
> +[Defines]
> 
> +  INF_VERSION                    = 0x00010005
> 
> +  BASE_NAME                      = MockUefiBootServicesTableLib
> 
> +  FILE_GUID                      = 9C6D2161-61B2-4094-BC8D-92F70C5E3C06
> 
> +  MODULE_TYPE                    = HOST_APPLICATION
> 
> +  VERSION_STRING                 = 1.0
> 
> +  LIBRARY_CLASS                  = MockUefiBootServicesTableLib
> 
> +
> 
> +#
> 
> +# The following information is for reference only and not required by the
> build tools.
> 
> +#
> 
> +#  VALID_ARCHITECTURES           = IA32 X64
> 
> +#
> 
> +
> 
> +[Sources]
> 
> +  MockUefiBootServicesTableLib.cpp
> 
> +
> 
> +[Packages]
> 
> +  MdePkg/MdePkg.dec
> 
> +  UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> 
> +
> 
> +[LibraryClasses]
> 
> +  GoogleTestLib
> 
> +
> 
> +[BuildOptions]
> 
> +  MSFT:*_*_*_CC_FLAGS = /EHsc
> 
> --
> 2.26.2.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106439): https://edk2.groups.io/g/devel/message/106439
Mute This Topic: https://groups.io/mt/99640663/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: 
https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to