UnitTestFrameworkPkg: Expand host-based exception handling and gcov
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4683 Update MSFT CC_FLAGS for host-based unit tests to use /EHs instead of /EHsc to support building C functions with SEH (Structured Exception Handling) enabled. This is required to build UnitTestDebugAssertLibHost.inf. Update GCC CC_FLAGS for host-based unit tests to use -fexceptions to support catching exceptions. Update GoogleTestLib.h to include Throws() APIs that enable unit tests to use EXPECT_THAT() to check for expected ASSERT() conditions for a specific ASSERT() expression. Update GCC CC_FLAGS to add --coverage for host-based builds for all GCC tool chains. Cc: Michael Kubacki <mikuback@linux.microsoft.com> Cc: Sean Brogan <sean.brogan@microsoft.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Michael Kubacki <michael.kubacki@microsoft.com>
This commit is contained in:
committed by
mergify[bot]
parent
46c6de57b0
commit
81b69f306f
@@ -13,6 +13,26 @@
|
||||
#include <gmock/gmock.h>
|
||||
#include <cstring>
|
||||
|
||||
using ::testing::Throws;
|
||||
using ::testing::ThrowsMessage;
|
||||
using ::testing::HasSubstr;
|
||||
|
||||
//
|
||||
// Extended macros for testing exceptions with a specific description string
|
||||
// in the exception message. Typically used to check that the expression
|
||||
// that generates an ASSERT() matches the expected expression.
|
||||
//
|
||||
#define EXPECT_THROW_MESSAGE(statement, description) \
|
||||
EXPECT_THAT ( \
|
||||
[]() { statement; }, \
|
||||
ThrowsMessage<std::runtime_error>(HasSubstr (description)) \
|
||||
)
|
||||
#define ASSERT_THROW_MESSAGE(statement, description) \
|
||||
ASSERT_THAT ( \
|
||||
[]() { statement; }, \
|
||||
ThrowsMessage<std::runtime_error>(HasSubstr (description)) \
|
||||
)
|
||||
|
||||
extern "C" {
|
||||
#include <Uefi.h>
|
||||
}
|
||||
|
Reference in New Issue
Block a user