Skip to content

Commit

Permalink
MdePkg: Add FdtLib gmock support
Browse files Browse the repository at this point in the history
Add Google Mock Library for FdtLib

Jira TEGRAUEFI-3105

Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
Change-Id: I96b74688b50ff555ca77b58f239ecc0f493cb118
  • Loading branch information
jbrasen committed Jan 23, 2024
1 parent 7f72c28 commit cd61581
Show file tree
Hide file tree
Showing 3 changed files with 226 additions and 0 deletions.
164 changes: 164 additions & 0 deletions MdePkg/Test/Mock/Include/GoogleTest/Library/MockFdtLib.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
/** @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 <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
34 changes: 34 additions & 0 deletions MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.cpp
Original file line number Diff line number Diff line change
@@ -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);
28 changes: 28 additions & 0 deletions MdePkg/Test/Mock/Library/GoogleTest/MockFdtLib/MockFdtLib.inf
Original file line number Diff line number Diff line change
@@ -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 = 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 /bigobj

0 comments on commit cd61581

Please sign in to comment.