diff --git a/BoardModulePkg/BoardModulePkg.dec b/BoardModulePkg/BoardModulePkg.dec index 0e557ee39b..c5284d3ef3 100644 --- a/BoardModulePkg/BoardModulePkg.dec +++ b/BoardModulePkg/BoardModulePkg.dec @@ -22,6 +22,7 @@ [Includes] Include + Test/Mock/Include [LibraryClasses] ## @libraryclass Provide services to access CMOS area. diff --git a/Platform/Intel/BoardModulePkg/Test/BoardModulePkgHostTest.dsc b/Platform/Intel/BoardModulePkg/Test/BoardModulePkgHostTest.dsc new file mode 100644 index 0000000000..569a3f237f --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Test/BoardModulePkgHostTest.dsc @@ -0,0 +1,32 @@ +## @file BoardModulePkgHostTest.dsc +# +# BoardModulePkg DSC file used to build host-based unit tests. +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + PLATFORM_NAME = BoardModulePkgHostTest + PLATFORM_GUID = 67275336-A324-4F69-BD38-70A4C7898F06 + PLATFORM_VERSION = 0.1 + DSC_SPECIFICATION = 0x00010005 + OUTPUT_DIRECTORY = Build/BoardModulePkg/HostTest + SUPPORTED_ARCHITECTURES = IA32|X64 + BUILD_TARGETS = NOOPT + SKUID_IDENTIFIER = DEFAULT + +!include UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc + +[LibraryClasses] + +[Components] + # + # Build HOST_APPLICATIONs that test the BoardModulePkg + # + + # + # Build HOST_APPLICATION Libraries With GoogleTest + # + BoardModulePkg/Test/Mock/Library/GoogleTest/MockBiosIdLib/MockBiosIdLib.inf diff --git a/Platform/Intel/BoardModulePkg/Test/Mock/Include/GoogleTest/Library/MockBiosIdLib.h b/Platform/Intel/BoardModulePkg/Test/Mock/Include/GoogleTest/Library/MockBiosIdLib.h new file mode 100644 index 0000000000..c4668c04df --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Test/Mock/Include/GoogleTest/Library/MockBiosIdLib.h @@ -0,0 +1,40 @@ +/** @file MockBiosIdLib.h + Google Test mocks for BiosIdLib + Copyright (c) Microsoft Corporation. + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef MOCK_BIOS_ID_LIB_H_ +#define MOCK_BIOS_ID_LIB_H_ + +#include +#include +extern "C" { + #include + #include + #include +} + +struct MockBiosIdLib { + MOCK_INTERFACE_DECLARATION (MockBiosIdLib); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + GetBiosId, + ( + OUT BIOS_ID_IMAGE *BiosIdImage OPTIONAL + ) + ); + + MOCK_FUNCTION_DECLARATION ( + EFI_STATUS, + GetBiosVersionDateTime, + ( + OUT CHAR16 *BiosVersion, OPTIONAL + OUT CHAR16 *BiosReleaseDate, OPTIONAL + OUT CHAR16 *BiosReleaseTime OPTIONAL + ) + ); +}; + +#endif diff --git a/Platform/Intel/BoardModulePkg/Test/Mock/Library/GoogleTest/MockBiosIdLib/MockBiosIdLib.cpp b/Platform/Intel/BoardModulePkg/Test/Mock/Library/GoogleTest/MockBiosIdLib/MockBiosIdLib.cpp new file mode 100644 index 0000000000..12a1c38163 --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Test/Mock/Library/GoogleTest/MockBiosIdLib/MockBiosIdLib.cpp @@ -0,0 +1,12 @@ +/** @file MockBiosIdLib.cpp + Google Test mocks for BiosIdLib + + Copyright (c) Microsoft Corporation. + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#include + +MOCK_INTERFACE_DEFINITION (MockBiosIdLib); +MOCK_FUNCTION_DEFINITION (MockBiosIdLib, GetBiosId, 1, EFIAPI); +MOCK_FUNCTION_DEFINITION (MockBiosIdLib, GetBiosVersionDateTime, 3, EFIAPI); diff --git a/Platform/Intel/BoardModulePkg/Test/Mock/Library/GoogleTest/MockBiosIdLib/MockBiosIdLib.inf b/Platform/Intel/BoardModulePkg/Test/Mock/Library/GoogleTest/MockBiosIdLib/MockBiosIdLib.inf new file mode 100644 index 0000000000..4d96f41f43 --- /dev/null +++ b/Platform/Intel/BoardModulePkg/Test/Mock/Library/GoogleTest/MockBiosIdLib/MockBiosIdLib.inf @@ -0,0 +1,33 @@ +## @file MockBiosIdLib.inf +# Google Test mock for BiosIdLib +# +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: BSD-2-Clause-Patent +## + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = MockBiosIdLib + FILE_GUID = FD03FA6D-7447-499C-B3AF-D89450F7739A + MODULE_TYPE = HOST_APPLICATION + VERSION_STRING = 1.0 + LIBRARY_CLASS = BiosIdLib + PI_SPECIFICATION_VERSION = 0x0001000A + +# +# VALID_ARCHITECTURES = IA32 X64 +# + +[Sources] + MockBiosIdLib.cpp + +[Packages] + MdePkg/MdePkg.dec + UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec + BoardModulePkg/BoardModulePkg.dec + +[LibraryClasses] + GoogleTestLib + +[BuildOptions] + MSFT:*_*_*_CC_FLAGS = /EHsc