* [edk2-devel] [PATCH] MdePkg: Add FdtLib gmock support
@ 2023-12-11 15:43 Jeff Brasen via groups.io
2024-01-23 17:20 ` Jeff Brasen via groups.io
2024-01-23 22:14 ` Michael D Kinney
0 siblings, 2 replies; 3+ messages in thread
From: Jeff Brasen via groups.io @ 2023-12-11 15:43 UTC (permalink / raw)
To: devel; +Cc: gaoliming, michael.d.kinney, zhiguang.liu, Jeff Brasen
Add Google Mock Library for FdtLib
Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
---
.../Include/GoogleTest/Library/MockFdtLib.h | 165 ++++++++++++++++++
.../GoogleTest/MockFdtLib/MockFdtLib.cpp | 34 ++++
.../GoogleTest/MockFdtLib/MockFdtLib.inf | 28 +++
3 files changed, 227 insertions(+)
create mode 100644 MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
create mode 100644 MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
create mode 100644 MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
new file mode 100644
index 0000000000..c0aeaa25c0
--- /dev/null
+++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
@@ -0,0 +1,165 @@
+/** @file
+ Google Test mocks for FdtLib
+
+ Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+ Copyright (c) 2023, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#ifndef MOCK_FDT_LIB_H_
+#define MOCK_FDT_LIB_H_
+
+#include <Library/GoogleTestLib.h>
+#include <Library/FunctionMockLib.h>
+extern "C" {
+#include <Pi/PiMultiPhase.h>
+#include <Uefi.h>
+#include <Library/FdtLib.h>
+}
+
+struct MockFdtLib {
+ MOCK_INTERFACE_DECLARATION (MockFdtLib);
+
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ Fdt16ToCpu,
+ (IN UINT16 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT16,
+ CpuToFdt16,
+ (IN UINT16 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ Fdt32ToCpu,
+ (IN UINT32 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT32,
+ CpuToFdt32,
+ (IN UINT32 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT64,
+ Fdt64ToCpu,
+ (IN UINT64 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ UINT64,
+ CpuToFdt64,
+ (IN UINT64 Value)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtCheckHeader,
+ (IN CONST VOID *Fdt)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtCreateEmptyTree,
+ (IN VOID *Buffer,
+ IN UINT32 BufferSize)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNextNode,
+ (IN CONST VOID *Fdt,
+ IN INT32 Offset,
+ IN INT32 *Depth)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtFirstSubnode,
+ (IN CONST VOID *Fdt,
+ IN INT32 Offset)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNextSubnode,
+ (IN CONST VOID *Fdt,
+ IN INT32 Offset)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtSubnodeOffsetNameLen,
+ (IN CONST VOID *Fdt,
+ IN INT32 ParentOffset,
+ IN CONST CHAR8 *Name,
+ IN INT32 NameLength)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNodeOffsetByPropValue,
+ (IN CONST VOID *Fdt,
+ IN INT32 StartOffset,
+ IN CONST CHAR8 *PropertyName,
+ IN CONST VOID *PropertyValue,
+ IN INT32 PropertyLength)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ CONST FDT_PROPERTY *,
+ FdtGetProperty,
+ (IN CONST VOID *Fdt,
+ IN INT32 NodeOffset,
+ IN CONST CHAR8 *Name,
+ IN INT32 *Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtFirstPropertyOffset,
+ (IN CONST VOID *Fdt,
+ IN INT32 NodeOffset)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNextPropertyOffset,
+ (IN CONST VOID *Fdt,
+ IN INT32 NodeOffset)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ CONST FDT_PROPERTY *,
+ FdtGetPropertyByOffset,
+ (IN CONST VOID *Fdt,
+ IN INT32 Offset,
+ IN INT32 *Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ CONST CHAR8 *,
+ FdtGetString,
+ (IN CONST VOID *Fdt,
+ IN INT32 StrOffset,
+ IN INT32 *Length OPTIONAL)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtAddSubnode,
+ (IN VOID *Fdt,
+ IN INT32 ParentOffset,
+ IN CONST CHAR8 *Name)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtSetProp,
+ (IN VOID *Fdt,
+ IN INT32 NodeOffset,
+ IN CONST CHAR8 *Name,
+ IN CONST VOID *Value,
+ IN UINT32 Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ CONST CHAR8 *,
+ FdtGetName,
+ (IN VOID *Fdt,
+ IN INT32 NodeOffset,
+ IN UINT32 *Length)
+ );
+ MOCK_FUNCTION_DECLARATION (
+ INT32,
+ FdtNodeDepth,
+ (IN CONST VOID *Fdt,
+ IN INT32 NodeOffset)
+ );
+};
+
+#endif
diff --git a/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
new file mode 100644
index 0000000000..a955780d23
--- /dev/null
+++ b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
@@ -0,0 +1,34 @@
+/** @file
+ Google Test mocks for FdtLib
+
+ Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+ Copyright (c) 2023, Intel Corporation. All rights reserved.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#include <GoogleTest/Library/MockFdtLib.h>
+
+MOCK_INTERFACE_DEFINITION (MockFdtLib);
+
+MOCK_FUNCTION_DEFINITION (MockFdtLib, Fdt16ToCpu, 1, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, CpuToFdt16, 1, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, Fdt32ToCpu, 1, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, CpuToFdt32, 1, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, Fdt64ToCpu, 1, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, CpuToFdt64, 1, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtCheckHeader, 1, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtCreateEmptyTree, 2, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNextNode, 3, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtFirstSubnode, 2, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNextSubnode, 2, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtSubnodeOffsetNameLen, 4, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNodeOffsetByPropValue, 5, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetProperty, 4, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtFirstPropertyOffset, 2, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNextPropertyOffset, 2, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetPropertyByOffset, 3, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetString, 3, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtAddSubnode, 3, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtSetProp, 5, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetName, 3, EFIAPI);
+MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNodeDepth, 2, EFIAPI);
diff --git a/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
new file mode 100644
index 0000000000..cc5311eae4
--- /dev/null
+++ b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
@@ -0,0 +1,28 @@
+## @file
+# Google Test mocks for FdtLib
+#
+# Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+# Copyright (c) 2023, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+##
+
+[Defines]
+ INF_VERSION = 0x00010005
+ BASE_NAME = MockHobLib
+ FILE_GUID = 0f5471bc-fc2c-4cf4-b9f7-c1396d32831c
+ MODULE_TYPE = HOST_APPLICATION
+ VERSION_STRING = 1.0
+ LIBRARY_CLASS = FdtLib
+
+[Sources]
+ MockFdtLib.cpp
+
+[Packages]
+ MdePkg/MdePkg.dec
+ UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
+
+[LibraryClasses]
+ GoogleTestLib
+
+[BuildOptions]
+ MSFT:*_*_*_CC_FLAGS = /EHsc
--
2.34.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#112310): https://edk2.groups.io/g/devel/message/112310
Mute This Topic: https://groups.io/mt/103110868/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [edk2-devel] [PATCH] MdePkg: Add FdtLib gmock support
2023-12-11 15:43 [edk2-devel] [PATCH] MdePkg: Add FdtLib gmock support Jeff Brasen via groups.io
@ 2024-01-23 17:20 ` Jeff Brasen via groups.io
2024-01-23 22:14 ` Michael D Kinney
1 sibling, 0 replies; 3+ messages in thread
From: Jeff Brasen via groups.io @ 2024-01-23 17:20 UTC (permalink / raw)
To: devel@edk2.groups.io
Cc: gaoliming@byosoft.com.cn, michael.d.kinney@intel.com,
zhiguang.liu@intel.com
Any comments on this patch?
Thanks,
Jeff
> -----Original Message-----
> From: Jeff Brasen <jbrasen@nvidia.com>
> Sent: Monday, December 11, 2023 8:43 AM
> To: devel@edk2.groups.io
> Cc: gaoliming@byosoft.com.cn; michael.d.kinney@intel.com;
> zhiguang.liu@intel.com; Jeff Brasen <jbrasen@nvidia.com>
> Subject: [PATCH] MdePkg: Add FdtLib gmock support
>
> Add Google Mock Library for FdtLib
>
> Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
> ---
> .../Include/GoogleTest/Library/MockFdtLib.h | 165 ++++++++++++++++++
> .../GoogleTest/MockFdtLib/MockFdtLib.cpp | 34 ++++
> .../GoogleTest/MockFdtLib/MockFdtLib.inf | 28 +++
> 3 files changed, 227 insertions(+)
> create mode 100644
> MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
> create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
> create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
>
> diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
> b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
> new file mode 100644
> index 0000000000..c0aeaa25c0
> --- /dev/null
> +++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
> @@ -0,0 +1,165 @@
> +/** @file
> + Google Test mocks for FdtLib
> +
> + Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
> + Copyright (c) 2023, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent **/
> +
> +#ifndef MOCK_FDT_LIB_H_
> +#define MOCK_FDT_LIB_H_
> +
> +#include <Library/GoogleTestLib.h>
> +#include <Library/FunctionMockLib.h>
> +extern "C" {
> +#include <Pi/PiMultiPhase.h>
> +#include <Uefi.h>
> +#include <Library/FdtLib.h>
> +}
> +
> +struct MockFdtLib {
> + MOCK_INTERFACE_DECLARATION (MockFdtLib);
> +
> + MOCK_FUNCTION_DECLARATION (
> + UINT16,
> + Fdt16ToCpu,
> + (IN UINT16 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT16,
> + CpuToFdt16,
> + (IN UINT16 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT32,
> + Fdt32ToCpu,
> + (IN UINT32 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT32,
> + CpuToFdt32,
> + (IN UINT32 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT64,
> + Fdt64ToCpu,
> + (IN UINT64 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT64,
> + CpuToFdt64,
> + (IN UINT64 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtCheckHeader,
> + (IN CONST VOID *Fdt)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtCreateEmptyTree,
> + (IN VOID *Buffer,
> + IN UINT32 BufferSize)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNextNode,
> + (IN CONST VOID *Fdt,
> + IN INT32 Offset,
> + IN INT32 *Depth)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtFirstSubnode,
> + (IN CONST VOID *Fdt,
> + IN INT32 Offset)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNextSubnode,
> + (IN CONST VOID *Fdt,
> + IN INT32 Offset)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtSubnodeOffsetNameLen,
> + (IN CONST VOID *Fdt,
> + IN INT32 ParentOffset,
> + IN CONST CHAR8 *Name,
> + IN INT32 NameLength)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNodeOffsetByPropValue,
> + (IN CONST VOID *Fdt,
> + IN INT32 StartOffset,
> + IN CONST CHAR8 *PropertyName,
> + IN CONST VOID *PropertyValue,
> + IN INT32 PropertyLength)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + CONST FDT_PROPERTY *,
> + FdtGetProperty,
> + (IN CONST VOID *Fdt,
> + IN INT32 NodeOffset,
> + IN CONST CHAR8 *Name,
> + IN INT32 *Length)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtFirstPropertyOffset,
> + (IN CONST VOID *Fdt,
> + IN INT32 NodeOffset)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNextPropertyOffset,
> + (IN CONST VOID *Fdt,
> + IN INT32 NodeOffset)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + CONST FDT_PROPERTY *,
> + FdtGetPropertyByOffset,
> + (IN CONST VOID *Fdt,
> + IN INT32 Offset,
> + IN INT32 *Length)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + CONST CHAR8 *,
> + FdtGetString,
> + (IN CONST VOID *Fdt,
> + IN INT32 StrOffset,
> + IN INT32 *Length OPTIONAL)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtAddSubnode,
> + (IN VOID *Fdt,
> + IN INT32 ParentOffset,
> + IN CONST CHAR8 *Name)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtSetProp,
> + (IN VOID *Fdt,
> + IN INT32 NodeOffset,
> + IN CONST CHAR8 *Name,
> + IN CONST VOID *Value,
> + IN UINT32 Length)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + CONST CHAR8 *,
> + FdtGetName,
> + (IN VOID *Fdt,
> + IN INT32 NodeOffset,
> + IN UINT32 *Length)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNodeDepth,
> + (IN CONST VOID *Fdt,
> + IN INT32 NodeOffset)
> + );
> +};
> +
> +#endif
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
> b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
> new file mode 100644
> index 0000000000..a955780d23
> --- /dev/null
> +++ b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
> @@ -0,0 +1,34 @@
> +/** @file
> + Google Test mocks for FdtLib
> +
> + Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
> + Copyright (c) 2023, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent **/
> +
> +#include <GoogleTest/Library/MockFdtLib.h>
> +
> +MOCK_INTERFACE_DEFINITION (MockFdtLib);
> +
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, Fdt16ToCpu, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, CpuToFdt16, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, Fdt32ToCpu, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, CpuToFdt32, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, Fdt64ToCpu, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, CpuToFdt64, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtCheckHeader, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtCreateEmptyTree, 2,
> EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNextNode, 3, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtFirstSubnode, 2, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNextSubnode, 2, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtSubnodeOffsetNameLen,
> 4,
> +EFIAPI); MOCK_FUNCTION_DEFINITION (MockFdtLib,
> +FdtNodeOffsetByPropValue, 5, EFIAPI); MOCK_FUNCTION_DEFINITION
> +(MockFdtLib, FdtGetProperty, 4, EFIAPI); MOCK_FUNCTION_DEFINITION
> +(MockFdtLib, FdtFirstPropertyOffset, 2, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNextPropertyOffset, 2,
> +EFIAPI); MOCK_FUNCTION_DEFINITION (MockFdtLib,
> FdtGetPropertyByOffset,
> +3, EFIAPI); MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetString, 3,
> +EFIAPI); MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtAddSubnode, 3,
> +EFIAPI); MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtSetProp, 5,
> EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetName, 3, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNodeDepth, 2, EFIAPI);
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
> b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
> new file mode 100644
> index 0000000000..cc5311eae4
> --- /dev/null
> +++ b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
> @@ -0,0 +1,28 @@
> +## @file
> +# Google Test mocks for FdtLib
> +#
> +# Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights
> reserved.
> +# Copyright (c) 2023, Intel Corporation. All rights reserved.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent ##
> +
> +[Defines]
> + INF_VERSION = 0x00010005
> + BASE_NAME = MockHobLib
> + FILE_GUID = 0f5471bc-fc2c-4cf4-b9f7-c1396d32831c
> + MODULE_TYPE = HOST_APPLICATION
> + VERSION_STRING = 1.0
> + LIBRARY_CLASS = FdtLib
> +
> +[Sources]
> + MockFdtLib.cpp
> +
> +[Packages]
> + MdePkg/MdePkg.dec
> + UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> +
> +[LibraryClasses]
> + GoogleTestLib
> +
> +[BuildOptions]
> + MSFT:*_*_*_CC_FLAGS = /EHsc
> --
> 2.34.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#114224): https://edk2.groups.io/g/devel/message/114224
Mute This Topic: https://groups.io/mt/103110868/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [edk2-devel] [PATCH] MdePkg: Add FdtLib gmock support
2023-12-11 15:43 [edk2-devel] [PATCH] MdePkg: Add FdtLib gmock support Jeff Brasen via groups.io
2024-01-23 17:20 ` Jeff Brasen via groups.io
@ 2024-01-23 22:14 ` Michael D Kinney
1 sibling, 0 replies; 3+ messages in thread
From: Michael D Kinney @ 2024-01-23 22:14 UTC (permalink / raw)
To: Jeff Brasen, devel@edk2.groups.io
Cc: Gao, Liming, Liu, Zhiguang, Kinney, Michael D
Hi Jeff,
Thanks for this mock lib contribution.
I few comments below.
Thanks,
Mike
> -----Original Message-----
> From: Jeff Brasen <jbrasen@nvidia.com>
> Sent: Monday, December 11, 2023 7:43 AM
> To: devel@edk2.groups.io
> Cc: Gao, Liming <gaoliming@byosoft.com.cn>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Liu, Zhiguang <zhiguang.liu@intel.com>;
> Jeff Brasen <jbrasen@nvidia.com>
> Subject: [PATCH] MdePkg: Add FdtLib gmock support
>
> Add Google Mock Library for FdtLib
>
> Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
> ---
> .../Include/GoogleTest/Library/MockFdtLib.h | 165 ++++++++++++++++++
> .../GoogleTest/MockFdtLib/MockFdtLib.cpp | 34 ++++
> .../GoogleTest/MockFdtLib/MockFdtLib.inf | 28 +++
> 3 files changed, 227 insertions(+)
> create mode 100644
> MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
> create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
> create mode 100644
> MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
>
> diff --git a/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
> b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
> new file mode 100644
> index 0000000000..c0aeaa25c0
> --- /dev/null
> +++ b/MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
> @@ -0,0 +1,165 @@
> +/** @file
> + Google Test mocks for FdtLib
> +
> + Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights
> reserved.
> + Copyright (c) 2023, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#ifndef MOCK_FDT_LIB_H_
> +#define MOCK_FDT_LIB_H_
> +
> +#include <Library/GoogleTestLib.h>
> +#include <Library/FunctionMockLib.h>
> +extern "C" {
> +#include <Pi/PiMultiPhase.h>
> +#include <Uefi.h>
I think the 2 includes above can be replaced with <Base.h>
> +#include <Library/FdtLib.h>
> +}
> +
> +struct MockFdtLib {
> + MOCK_INTERFACE_DECLARATION (MockFdtLib);
> +
> + MOCK_FUNCTION_DECLARATION (
> + UINT16,
> + Fdt16ToCpu,
> + (IN UINT16 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT16,
> + CpuToFdt16,
> + (IN UINT16 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT32,
> + Fdt32ToCpu,
> + (IN UINT32 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT32,
> + CpuToFdt32,
> + (IN UINT32 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT64,
> + Fdt64ToCpu,
> + (IN UINT64 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + UINT64,
> + CpuToFdt64,
> + (IN UINT64 Value)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtCheckHeader,
> + (IN CONST VOID *Fdt)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtCreateEmptyTree,
> + (IN VOID *Buffer,
> + IN UINT32 BufferSize)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNextNode,
> + (IN CONST VOID *Fdt,
> + IN INT32 Offset,
> + IN INT32 *Depth)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtFirstSubnode,
> + (IN CONST VOID *Fdt,
> + IN INT32 Offset)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNextSubnode,
> + (IN CONST VOID *Fdt,
> + IN INT32 Offset)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtSubnodeOffsetNameLen,
> + (IN CONST VOID *Fdt,
> + IN INT32 ParentOffset,
> + IN CONST CHAR8 *Name,
> + IN INT32 NameLength)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNodeOffsetByPropValue,
> + (IN CONST VOID *Fdt,
> + IN INT32 StartOffset,
> + IN CONST CHAR8 *PropertyName,
> + IN CONST VOID *PropertyValue,
> + IN INT32 PropertyLength)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + CONST FDT_PROPERTY *,
> + FdtGetProperty,
> + (IN CONST VOID *Fdt,
> + IN INT32 NodeOffset,
> + IN CONST CHAR8 *Name,
> + IN INT32 *Length)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtFirstPropertyOffset,
> + (IN CONST VOID *Fdt,
> + IN INT32 NodeOffset)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNextPropertyOffset,
> + (IN CONST VOID *Fdt,
> + IN INT32 NodeOffset)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + CONST FDT_PROPERTY *,
> + FdtGetPropertyByOffset,
> + (IN CONST VOID *Fdt,
> + IN INT32 Offset,
> + IN INT32 *Length)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + CONST CHAR8 *,
> + FdtGetString,
> + (IN CONST VOID *Fdt,
> + IN INT32 StrOffset,
> + IN INT32 *Length OPTIONAL)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtAddSubnode,
> + (IN VOID *Fdt,
> + IN INT32 ParentOffset,
> + IN CONST CHAR8 *Name)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtSetProp,
> + (IN VOID *Fdt,
> + IN INT32 NodeOffset,
> + IN CONST CHAR8 *Name,
> + IN CONST VOID *Value,
> + IN UINT32 Length)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + CONST CHAR8 *,
> + FdtGetName,
> + (IN VOID *Fdt,
> + IN INT32 NodeOffset,
> + IN UINT32 *Length)
> + );
> + MOCK_FUNCTION_DECLARATION (
> + INT32,
> + FdtNodeDepth,
> + (IN CONST VOID *Fdt,
> + IN INT32 NodeOffset)
> + );
> +};
> +
> +#endif
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
> b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
> new file mode 100644
> index 0000000000..a955780d23
> --- /dev/null
> +++ b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
> @@ -0,0 +1,34 @@
> +/** @file
> + Google Test mocks for FdtLib
> +
> + Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights
> reserved.
> + Copyright (c) 2023, Intel Corporation. All rights reserved.
> + SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +#include <GoogleTest/Library/MockFdtLib.h>
> +
> +MOCK_INTERFACE_DEFINITION (MockFdtLib);
> +
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, Fdt16ToCpu, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, CpuToFdt16, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, Fdt32ToCpu, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, CpuToFdt32, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, Fdt64ToCpu, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, CpuToFdt64, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtCheckHeader, 1, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtCreateEmptyTree, 2, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNextNode, 3, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtFirstSubnode, 2, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNextSubnode, 2, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtSubnodeOffsetNameLen, 4,
> EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNodeOffsetByPropValue, 5,
> EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetProperty, 4, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtFirstPropertyOffset, 2,
> EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNextPropertyOffset, 2,
> EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetPropertyByOffset, 3,
> EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetString, 3, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtAddSubnode, 3, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtSetProp, 5, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtGetName, 3, EFIAPI);
> +MOCK_FUNCTION_DEFINITION (MockFdtLib, FdtNodeDepth, 2, EFIAPI);
> diff --git
> a/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
> b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
> new file mode 100644
> index 0000000000..cc5311eae4
> --- /dev/null
> +++ b/MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
> @@ -0,0 +1,28 @@
> +## @file
> +# Google Test mocks for FdtLib
> +#
> +# Copyright (c) 2023 NVIDIA CORPORATION & AFFILIATES. All rights
> reserved.
> +# Copyright (c) 2023, Intel Corporation. All rights reserved.
> +# SPDX-License-Identifier: BSD-2-Clause-Patent
> +##
> +
> +[Defines]
> + INF_VERSION = 0x00010005
> + BASE_NAME = MockHobLib
Should be MockFdtLib
> + FILE_GUID = 0f5471bc-fc2c-4cf4-b9f7-c1396d32831c
> + MODULE_TYPE = HOST_APPLICATION
> + VERSION_STRING = 1.0
> + LIBRARY_CLASS = FdtLib
> +
> +[Sources]
> + MockFdtLib.cpp
> +
> +[Packages]
> + MdePkg/MdePkg.dec
> + UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
> +
> +[LibraryClasses]
> + GoogleTestLib
> +
> +[BuildOptions]
> + MSFT:*_*_*_CC_FLAGS = /EHsc
Add /bigobj here as well.
I have been working with some mock libs that exceed VS max number
of objects without this flag and I think it is safer to just make
this a standard flag in all mock lib INFs.
> --
> 2.34.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#114233): https://edk2.groups.io/g/devel/message/114233
Mute This Topic: https://groups.io/mt/103110868/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-01-23 22:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-11 15:43 [edk2-devel] [PATCH] MdePkg: Add FdtLib gmock support Jeff Brasen via groups.io
2024-01-23 17:20 ` Jeff Brasen via groups.io
2024-01-23 22:14 ` Michael D Kinney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox