From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: devel@edk2.groups.io
Cc: Michael Kubacki <mikuback@linux.microsoft.com>,
Sean Brogan <sean.brogan@microsoft.com>
Subject: [edk2-devel] [edk2-stable202402][Patch 6/7] UnitTestFrameworkPkg/SampleGoogleTest: Use EXPECT_ANY_THROW()
Date: Tue, 6 Feb 2024 19:41:05 -0800 [thread overview]
Message-ID: <20240207034106.1860-7-michael.d.kinney@intel.com> (raw)
In-Reply-To: <20240207034106.1860-1-michael.d.kinney@intel.com>
Update GoogleTest samples to use EXPECT_ANY_THROW() instead
of ASSERT_DEATH(). ASSERT_DEATH() is a very slow method to
detect an expected ASSERT() condition. Throwing an exception
from ASSERT() and using EXPECT_ANY_THROW() is several orders
of maginitude faster.
Update library mappings so target based tests use
UnitTestDebugAssertLib.inf and host-based unit tests use
UnitTestDebugAssertLibHost.inf
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>
---
UnitTestFrameworkPkg/ReadMe.md | 2 +-
.../Sample/SampleGoogleTest/SampleGoogleTest.cpp | 13 +++++++++----
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/UnitTestFrameworkPkg/ReadMe.md b/UnitTestFrameworkPkg/ReadMe.md
index d6a3e0c15a2b..d28cb5cb0a5d 100644
--- a/UnitTestFrameworkPkg/ReadMe.md
+++ b/UnitTestFrameworkPkg/ReadMe.md
@@ -59,7 +59,7 @@ reviewed. The paths to the SecureBootVariableLib unit tests are:
| Unit Test Source Language | C | C++ |
| Register Test Suite | YES | Auto |
| Register Test Case | YES | Auto |
-| Death/Expected Assert Tests | YES | YES |
+| Expected Assert Tests | YES | YES |
| Setup/Teardown Hooks | YES | YES |
| Value-Parameterized Tests | NO | YES |
| Typed Tests | NO | YES |
diff --git a/UnitTestFrameworkPkg/Test/GoogleTest/Sample/SampleGoogleTest/SampleGoogleTest.cpp b/UnitTestFrameworkPkg/Test/GoogleTest/Sample/SampleGoogleTest/SampleGoogleTest.cpp
index 94cbf2cf0b3c..a39a86fdc30f 100644
--- a/UnitTestFrameworkPkg/Test/GoogleTest/Sample/SampleGoogleTest/SampleGoogleTest.cpp
+++ b/UnitTestFrameworkPkg/Test/GoogleTest/Sample/SampleGoogleTest/SampleGoogleTest.cpp
@@ -229,7 +229,7 @@ TEST_P (MacroTestsAssertsEnabledDisabled, MacroExpectNoAssertFailure) {
}
/**
- Sample unit test using the ASSERT_DEATH() macro to test expected ASSERT()s.
+ Sample unit test using the EXPECT_ANY_THROW() macro to test expected ASSERT()s.
**/
TEST_P (MacroTestsAssertsEnabledDisabled, MacroExpectAssertFailure) {
//
@@ -242,14 +242,14 @@ TEST_P (MacroTestsAssertsEnabledDisabled, MacroExpectAssertFailure) {
//
// This test passes because it directly triggers an ASSERT().
//
- ASSERT_DEATH (ASSERT (FALSE), "");
+ EXPECT_ANY_THROW (ASSERT (FALSE));
//
// This test passes because DecimalToBcd() generates an ASSERT() if the
// value passed in is >= 100. The expected ASSERT() is caught by the unit
- // test framework and ASSERT_DEATH() returns without an error.
+ // test framework and EXPECT_ANY_THROW() returns without an error.
//
- ASSERT_DEATH (DecimalToBcd8 (101), "");
+ EXPECT_ANY_THROW (DecimalToBcd8 (101));
}
INSTANTIATE_TEST_SUITE_P (
@@ -266,6 +266,11 @@ TEST (MacroTestsMessages, MacroTraceMessage) {
// Example of logging.
//
SCOPED_TRACE ("SCOPED_TRACE message\n");
+
+ //
+ // Always pass
+ //
+ ASSERT_TRUE (TRUE);
}
int
--
2.40.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115230): https://edk2.groups.io/g/devel/message/115230
Mute This Topic: https://groups.io/mt/104212833/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2024-02-07 3:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-07 3:40 [edk2-devel] [edk2-stable202402][Patch 0/7] EDK II CI misses UnitTestFrameworkPkg failures Michael D Kinney
2024-02-07 3:41 ` [edk2-devel] [edk2-stable202402][Patch 1/7] MdePkg/Include: Rename _DEBUG() to address name collision Michael D Kinney
2024-02-07 3:41 ` [edk2-devel] [edk2-stable202402][Patch 2/7] UnitTestFrameworkPkg: MSFT CC_FLAGS add /MT to for host builds Michael D Kinney
2024-02-07 3:41 ` [edk2-devel] [edk2-stable202402][Patch 3/7] UnitTestFrameworkPkg: Expand host-based exception handling and gcov Michael D Kinney
2024-02-07 3:41 ` [edk2-devel] [edk2-stable202402][Patch 4/7] UnitTestFrameworkPkg/UnitTestLib: GetActiveFrameworkHandle() no ASSERT() Michael D Kinney
2024-02-07 3:41 ` [edk2-devel] [edk2-stable202402][Patch 5/7] UnitTestFrameworkPkg/UnitTestDebugAssertLib: Add GoogleTest support Michael D Kinney
2024-02-07 3:41 ` Michael D Kinney [this message]
2024-02-07 3:41 ` [edk2-devel] [edk2-stable202402][Patch 7/7] UnitTestFrameworkPkg: Add DSC and host tests that always fail Michael D Kinney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240207034106.1860-7-michael.d.kinney@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox