public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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]
-=-=-=-=-=-=-=-=-=-=-=-



  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