[edk2-devel] 回复: [Patch v2 05/12] MdePkg: Add gmock examples
gaoliming via groups.io
gaoliming=byosoft.com.cn at groups.io
Thu Apr 6 01:15:47 UTC 2023
Acked-by: Liming Gao <gaoliming at byosoft.com.cn>
> -----邮件原件-----
> 发件人: Michael D Kinney <michael.d.kinney at intel.com>
> 发送时间: 2023年4月5日 2:22
> 收件人: devel at edk2.groups.io
> 抄送: Chris Johnson <chris.n.johnson at intel.com>; Liming Gao
> <gaoliming at byosoft.com.cn>; Zhiguang Liu <zhiguang.liu at intel.com>
> 主题: [Patch v2 05/12] MdePkg: Add gmock examples
>
> From: Chris Johnson <chris.n.johnson at intel.com>
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4389
>
> Cc: Michael D Kinney <michael.d.kinney at intel.com>
> Cc: Liming Gao <gaoliming at byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu at intel.com>
> Signed-off-by: Chris Johnson <chris.n.johnson at intel.com>
> ---
> MdePkg/MdePkg.dec | 1 +
> MdePkg/Test/MdePkgHostTest.dsc | 2 +
> .../Include/GoogleTest/Library/MockUefiLib.h | 39 +++++++++++++++++
> .../Library/MockUefiRuntimeServicesTableLib.h | 42 +++++++++++++++++++
> .../GoogleTest/MockUefiLib/MockUefiLib.cpp | 12 ++++++
> .../GoogleTest/MockUefiLib/MockUefiLib.inf | 33 +++++++++++++++
> .../MockUefiRuntimeServicesTableLib.cpp | 40
> ++++++++++++++++++
> .../MockUefiRuntimeServicesTableLib.inf | 33 +++++++++++++++
> 8 files changed, 202 insertions(+)
> create mode 100644
> MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h
> create mode 100644
> MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiRuntimeServicesTa
> bleLib.h
> create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.cpp
> create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.inf
> create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib/
> MockUefiRuntimeServicesTableLib.cpp
> create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib/
> MockUefiRuntimeServicesTableLib.inf
>
> diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
> index 2d643bede1d7..2a1d7694aa18 100644
> --- a/MdePkg/MdePkg.dec
> +++ b/MdePkg/MdePkg.dec
> @@ -26,6 +26,7 @@ [Defines]
> [Includes]
> Include
> Test/UnitTest/Include
> + Test/Mock/Include
>
> [Includes.IA32]
> Include/Ia32
> diff --git a/MdePkg/Test/MdePkgHostTest.dsc
> b/MdePkg/Test/MdePkgHostTest.dsc
> index b8b186dd8b17..35e3ef6d9729 100644
> --- a/MdePkg/Test/MdePkgHostTest.dsc
> +++ b/MdePkg/Test/MdePkgHostTest.dsc
> @@ -34,3 +34,5 @@ [Components]
> # Build HOST_APPLICATION Libraries
> #
> MdePkg/Library/BaseLib/UnitTestHostBaseLib.inf
> + MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.inf
> +
> MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib/
> MockUefiRuntimeServicesTableLib.inf
> diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h
> b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h
> new file mode 100644
> index 000000000000..dec2c93e1b34
> --- /dev/null
> +++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiLib.h
> @@ -0,0 +1,39 @@
> +/** @file
> + Google Test mocks for UefiLib
> +
> + Copyright (c) 2022, Intel Corporation. All rights reserved.
> + 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,
> + 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)
> + );
> +};
> +
> +#endif
> diff --git
> a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiRuntimeServices
> TableLib.h
> b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiRuntimeServices
> TableLib.h
> new file mode 100644
> index 000000000000..afdfc6b85597
> --- /dev/null
> +++
> b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockUefiRuntimeServices
> TableLib.h
> @@ -0,0 +1,42 @@
> +/** @file
> + Google Test mocks for UefiRuntimeServicesTableLib
> +
> + Copyright (c) 2022, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#ifndef MOCK_UEFI_RUNTIME_SERVICES_TABLE_LIB_H_
> +#define MOCK_UEFI_RUNTIME_SERVICES_TABLE_LIB_H_
> +
> +#include <Library/GoogleTestLib.h>
> +#include <Library/FunctionMockLib.h>
> +extern "C" {
> +#include <Uefi.h>
> +#include <Library/UefiRuntimeServicesTableLib.h>
> +}
> +
> +struct MockUefiRuntimeServicesTableLib {
> + MOCK_INTERFACE_DECLARATION (MockUefiRuntimeServicesTableLib);
> +
> + MOCK_FUNCTION_DECLARATION (
> + EFI_STATUS,
> + gRT_GetVariable,
> + (IN CHAR16 *VariableName,
> + IN EFI_GUID *VendorGuid,
> + OUT UINT32 *Attributes OPTIONAL,
> + IN OUT UINTN *DataSize,
> + OUT VOID *Data)
> + );
> +
> + MOCK_FUNCTION_DECLARATION (
> + EFI_STATUS,
> + gRT_SetVariable,
> + (IN CHAR16 *VariableName,
> + IN EFI_GUID *VendorGuid,
> + IN UINT32 Attributes,
> + IN UINTN DataSize,
> + IN VOID *Data)
> + );
> +};
> +
> +#endif
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.cpp
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.cpp
> new file mode 100644
> index 000000000000..5339d040c999
> --- /dev/null
> +++ b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.cpp
> @@ -0,0 +1,12 @@
> +/** @file
> + Google Test mocks for UefiLib
> +
> + Copyright (c) 2022, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +#include <GoogleTest/Library/MockUefiLib.h>
> +
> +MOCK_INTERFACE_DEFINITION(MockUefiLib);
> +
> +MOCK_FUNCTION_DEFINITION(MockUefiLib, GetVariable2, 4, EFIAPI);
> +MOCK_FUNCTION_DEFINITION(MockUefiLib, GetEfiGlobalVariable2, 3,
> EFIAPI);
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.inf
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.inf
> new file mode 100644
> index 000000000000..1a7461e44449
> --- /dev/null
> +++ b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiLib/MockUefiLib.inf
> @@ -0,0 +1,33 @@
> +## @file
> +# Google Test mocks for UefiLib
> +#
> +# Copyright (c) 2022, Intel Corporation. All rights reserved.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +##
> +
> +[Defines]
> + INF_VERSION = 0x00010005
> + BASE_NAME = MockUefiLib
> + FILE_GUID =
> 47211F7A-6D90-4DFB-BDF9-610B69197C2E
> + MODULE_TYPE = HOST_APPLICATION
> + VERSION_STRING = 1.0
> + LIBRARY_CLASS = UefiLib
> +
> +#
> +# The following information is for reference only and not required by the
> build tools.
> +#
> +# VALID_ARCHITECTURES = IA32 X64
> +#
> +
> +[Sources]
> + MockUefiLib.cpp
> +
> +[Packages]
> + MdePkg/MdePkg.dec
> + UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> +
> +[LibraryClasses]
> + GoogleTestLib
> +
> +[BuildOptions]
> + MSFT:*_*_*_CC_FLAGS = /EHsc
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib
> /MockUefiRuntimeServicesTableLib.cpp
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib
> /MockUefiRuntimeServicesTableLib.cpp
> new file mode 100644
> index 000000000000..ecd1ba82366c
> --- /dev/null
> +++
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib
> /MockUefiRuntimeServicesTableLib.cpp
> @@ -0,0 +1,40 @@
> +/** @file
> + Google Test mocks for UefiRuntimeServicesTableLib
> +
> + Copyright (c) 2022, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +#include <GoogleTest/Library/MockUefiRuntimeServicesTableLib.h>
> +
> +MOCK_INTERFACE_DEFINITION(MockUefiRuntimeServicesTableLib);
> +
> +MOCK_FUNCTION_DEFINITION(MockUefiRuntimeServicesTableLib,
> gRT_GetVariable, 5, EFIAPI);
> +MOCK_FUNCTION_DEFINITION(MockUefiRuntimeServicesTableLib,
> gRT_SetVariable, 5, EFIAPI);
> +
> +static EFI_RUNTIME_SERVICES localRt = {
> + {0}, // EFI_TABLE_HEADER
> +
> + NULL, // EFI_GET_TIME
> + NULL, // EFI_SET_TIME
> + NULL, // EFI_GET_WAKEUP_TIME
> + NULL, // EFI_SET_WAKEUP_TIME
> +
> + NULL, // EFI_SET_VIRTUAL_ADDRESS_MAP
> + NULL, // EFI_CONVERT_POINTER
> +
> + gRT_GetVariable, // EFI_GET_VARIABLE
> + NULL, // EFI_GET_NEXT_VARIABLE_NAME
> + gRT_SetVariable, // EFI_SET_VARIABLE
> +
> + NULL, // EFI_GET_NEXT_HIGH_MONO_COUNT
> + NULL, // EFI_RESET_SYSTEM
> +
> + NULL, // EFI_UPDATE_CAPSULE
> + NULL, // EFI_QUERY_CAPSULE_CAPABILITIES
> +
> + NULL, // EFI_QUERY_VARIABLE_INFO
> +};
> +
> +extern "C" {
> + EFI_RUNTIME_SERVICES* gRT = &localRt;
> +}
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib
> /MockUefiRuntimeServicesTableLib.inf
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib
> /MockUefiRuntimeServicesTableLib.inf
> new file mode 100644
> index 000000000000..7ba74d93bfc2
> --- /dev/null
> +++
> b/MdePkg/Test/Mock/Library/GoogleTest/MockUefiRuntimeServicesTableLib
> /MockUefiRuntimeServicesTableLib.inf
> @@ -0,0 +1,33 @@
> +## @file
> +# Google Test mocks for UefiRuntimeServicesTableLib
> +#
> +# Copyright (c) 2022, Intel Corporation. All rights reserved.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +##
> +
> +[Defines]
> + INF_VERSION = 0x00010005
> + BASE_NAME =
> MockUefiRuntimeServicesTableLib
> + FILE_GUID =
> 0A0E13C2-4176-4293-89C7-C2497AA31B92
> + MODULE_TYPE = HOST_APPLICATION
> + VERSION_STRING = 1.0
> + LIBRARY_CLASS = UefiRuntimeServicesTableLib
> +
> +#
> +# The following information is for reference only and not required by the
> build tools.
> +#
> +# VALID_ARCHITECTURES = IA32 X64
> +#
> +
> +[Sources]
> + MockUefiRuntimeServicesTableLib.cpp
> +
> +[Packages]
> + MdePkg/MdePkg.dec
> + UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> +
> +[LibraryClasses]
> + GoogleTestLib
> +
> +[BuildOptions]
> + MSFT:*_*_*_CC_FLAGS = /EHsc
> --
> 2.39.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#102581): https://edk2.groups.io/g/devel/message/102581
Mute This Topic: https://groups.io/mt/98096536/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list