UnitTestFrameworkPkg: Add subhook submodule required for gmock
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4389 Add subhook submodule that is required to hook internal functions when using gmock. https://github.com/Zeex/subhook Add SubhookLib library class and SubhookLib library instance. Include the SUBHOOK_STATIC define in the SubhookLib INF file so it builds as a static library. Also include the SUBHOOK_STATIC define in SubhookLib.h so all modules using SubhookLib properly link SubhookLib as a static library. Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <quic_llindhol@quicinc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Michael Kubacki <mikuback@linux.microsoft.com> Cc: Sean Brogan <sean.brogan@microsoft.com> Signed-off-by: Chris Johnson <chris.n.johnson@intel.com> Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com> Reviewed-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Oliver Smith-Denny <osde@linux.microsoft.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
parent
6405cd0304
commit
0c6d851d25
|
@ -23,3 +23,6 @@
|
||||||
[submodule "UnitTestFrameworkPkg/Library/GoogleTestLib/googletest"]
|
[submodule "UnitTestFrameworkPkg/Library/GoogleTestLib/googletest"]
|
||||||
path = UnitTestFrameworkPkg/Library/GoogleTestLib/googletest
|
path = UnitTestFrameworkPkg/Library/GoogleTestLib/googletest
|
||||||
url = https://github.com/google/googletest.git
|
url = https://github.com/google/googletest.git
|
||||||
|
[submodule "UnitTestFrameworkPkg/Library/SubhookLib/subhook"]
|
||||||
|
path = UnitTestFrameworkPkg/Library/SubhookLib/subhook
|
||||||
|
url = https://github.com/Zeex/subhook.git
|
||||||
|
|
|
@ -94,6 +94,7 @@ that are covered by additional licenses.
|
||||||
- `MdeModulePkg/Universal/RegularExpressionDxe/oniguruma <https://github.com/kkos/oniguruma/blob/abfc8ff81df4067f309032467785e06975678f0d/COPYING>`__
|
- `MdeModulePkg/Universal/RegularExpressionDxe/oniguruma <https://github.com/kkos/oniguruma/blob/abfc8ff81df4067f309032467785e06975678f0d/COPYING>`__
|
||||||
- `UnitTestFrameworkPkg/Library/CmockaLib/cmocka <https://github.com/tianocore/edk2-cmocka/blob/f5e2cd77c88d9f792562888d2b70c5a396bfbf7a/COPYING>`__
|
- `UnitTestFrameworkPkg/Library/CmockaLib/cmocka <https://github.com/tianocore/edk2-cmocka/blob/f5e2cd77c88d9f792562888d2b70c5a396bfbf7a/COPYING>`__
|
||||||
- `UnitTestFrameworkPkg/Library/GoogleTestLib/googletest <https://github.com/google/googletest/blob/86add13493e5c881d7e4ba77fb91c1f57752b3a4/LICENSE>`__
|
- `UnitTestFrameworkPkg/Library/GoogleTestLib/googletest <https://github.com/google/googletest/blob/86add13493e5c881d7e4ba77fb91c1f57752b3a4/LICENSE>`__
|
||||||
|
- `UnitTestFrameworkPkg/Library/SubhookLib/subhook <https://github.com/Zeex/subhook/blob/83d4e1ebef3588fae48b69a7352cc21801cb70bc/LICENSE.txt>`__
|
||||||
- `RedfishPkg/Library/JsonLib/jansson <https://github.com/akheron/jansson/blob/2882ead5bb90cf12a01b07b2c2361e24960fae02/LICENSE>`__
|
- `RedfishPkg/Library/JsonLib/jansson <https://github.com/akheron/jansson/blob/2882ead5bb90cf12a01b07b2c2361e24960fae02/LICENSE>`__
|
||||||
|
|
||||||
The EDK II Project is composed of packages. The maintainers for each package
|
The EDK II Project is composed of packages. The maintainers for each package
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
/** @file
|
||||||
|
SubhookLib class with APIs from the subhook project
|
||||||
|
|
||||||
|
Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
|
||||||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
#ifndef SUBHOOK_LIB_H_
|
||||||
|
#define SUBHOOK_LIB_H_
|
||||||
|
|
||||||
|
#define SUBHOOK_STATIC
|
||||||
|
#include <subhook.h>
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,31 @@
|
||||||
|
## @file
|
||||||
|
# This module provides Subhook Library implementation.
|
||||||
|
#
|
||||||
|
# Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
|
||||||
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
[Defines]
|
||||||
|
INF_VERSION = 0x00010018
|
||||||
|
BASE_NAME = SubhookLib
|
||||||
|
MODULE_UNI_FILE = SubhookLib.uni
|
||||||
|
FILE_GUID = 70E03378-E140-46A8-8E65-7719DA14A240
|
||||||
|
MODULE_TYPE = HOST_APPLICATION
|
||||||
|
VERSION_STRING = 0.1
|
||||||
|
LIBRARY_CLASS = SubhookLib
|
||||||
|
|
||||||
|
#
|
||||||
|
# VALID_ARCHITECTURES = IA32 X64
|
||||||
|
#
|
||||||
|
|
||||||
|
[Sources]
|
||||||
|
subhook/subhook.c
|
||||||
|
|
||||||
|
[Packages]
|
||||||
|
UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec
|
||||||
|
|
||||||
|
[BuildOptions]
|
||||||
|
MSFT:*_*_*_CC_FLAGS == /c /EHsc /Zi /DSUBHOOK_STATIC /Od
|
||||||
|
GCC:*_*_IA32_CC_FLAGS == -g -c -O0 -m32
|
||||||
|
GCC:*_*_X64_CC_FLAGS == -g -c -O0 -m64
|
|
@ -0,0 +1,11 @@
|
||||||
|
// /** @file
|
||||||
|
// This module provides Subhook Library implementation.
|
||||||
|
//
|
||||||
|
// Copyright (c) 2022, Intel Corporation. All rights reserved.<BR>
|
||||||
|
// SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
//
|
||||||
|
// **/
|
||||||
|
|
||||||
|
#string STR_MODULE_ABSTRACT #language en-US "Subhook Library implementation"
|
||||||
|
|
||||||
|
#string STR_MODULE_DESCRIPTION #language en-US "This module provides Subhook Library implementation."
|
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit 83d4e1ebef3588fae48b69a7352cc21801cb70bc
|
|
@ -33,6 +33,7 @@
|
||||||
#
|
#
|
||||||
UnitTestFrameworkPkg/Library/CmockaLib/CmockaLib.inf
|
UnitTestFrameworkPkg/Library/CmockaLib/CmockaLib.inf
|
||||||
UnitTestFrameworkPkg/Library/GoogleTestLib/GoogleTestLib.inf
|
UnitTestFrameworkPkg/Library/GoogleTestLib/GoogleTestLib.inf
|
||||||
|
UnitTestFrameworkPkg/Library/SubhookLib/SubhookLib.inf
|
||||||
UnitTestFrameworkPkg/Library/Posix/DebugLibPosix/DebugLibPosix.inf
|
UnitTestFrameworkPkg/Library/Posix/DebugLibPosix/DebugLibPosix.inf
|
||||||
UnitTestFrameworkPkg/Library/Posix/MemoryAllocationLibPosix/MemoryAllocationLibPosix.inf
|
UnitTestFrameworkPkg/Library/Posix/MemoryAllocationLibPosix/MemoryAllocationLibPosix.inf
|
||||||
UnitTestFrameworkPkg/Library/UnitTestLib/UnitTestLibCmocka.inf
|
UnitTestFrameworkPkg/Library/UnitTestLib/UnitTestLibCmocka.inf
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
Library/CmockaLib/cmocka/include
|
Library/CmockaLib/cmocka/include
|
||||||
Library/GoogleTestLib/googletest/googletest/include
|
Library/GoogleTestLib/googletest/googletest/include
|
||||||
Library/GoogleTestLib/googletest/googlemock/include
|
Library/GoogleTestLib/googletest/googlemock/include
|
||||||
|
Library/SubhookLib/subhook
|
||||||
|
|
||||||
[Includes.Common.Private]
|
[Includes.Common.Private]
|
||||||
PrivateInclude
|
PrivateInclude
|
||||||
|
@ -34,6 +35,7 @@
|
||||||
## @libraryclass GoogleTest infrastructure
|
## @libraryclass GoogleTest infrastructure
|
||||||
#
|
#
|
||||||
GoogleTestLib|Include/Library/GoogleTestLib.h
|
GoogleTestLib|Include/Library/GoogleTestLib.h
|
||||||
|
SubhookLib|Include/Library/SubhookLib.h
|
||||||
|
|
||||||
[LibraryClasses.Common.Private]
|
[LibraryClasses.Common.Private]
|
||||||
## @libraryclass Provides a unit test result report
|
## @libraryclass Provides a unit test result report
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLibNull/BaseCacheMaintenanceLibNull.inf
|
CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLibNull/BaseCacheMaintenanceLibNull.inf
|
||||||
CmockaLib|UnitTestFrameworkPkg/Library/CmockaLib/CmockaLib.inf
|
CmockaLib|UnitTestFrameworkPkg/Library/CmockaLib/CmockaLib.inf
|
||||||
GoogleTestLib|UnitTestFrameworkPkg/Library/GoogleTestLib/GoogleTestLib.inf
|
GoogleTestLib|UnitTestFrameworkPkg/Library/GoogleTestLib/GoogleTestLib.inf
|
||||||
|
SubhookLib|UnitTestFrameworkPkg/Library/SubhookLib/SubhookLib.inf
|
||||||
UnitTestLib|UnitTestFrameworkPkg/Library/UnitTestLib/UnitTestLibCmocka.inf
|
UnitTestLib|UnitTestFrameworkPkg/Library/UnitTestLib/UnitTestLibCmocka.inf
|
||||||
DebugLib|UnitTestFrameworkPkg/Library/Posix/DebugLibPosix/DebugLibPosix.inf
|
DebugLib|UnitTestFrameworkPkg/Library/Posix/DebugLibPosix/DebugLibPosix.inf
|
||||||
MemoryAllocationLib|UnitTestFrameworkPkg/Library/Posix/MemoryAllocationLibPosix/MemoryAllocationLibPosix.inf
|
MemoryAllocationLib|UnitTestFrameworkPkg/Library/Posix/MemoryAllocationLibPosix/MemoryAllocationLibPosix.inf
|
||||||
|
|
Loading…
Reference in New Issue