public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Bret Barkelew" <bret.barkelew@microsoft.com>
To: "Kinney, Michael D" <michael.d.kinney@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Sean Brogan <sean.brogan@microsoft.com>,
	"Yao, Jiewen" <jiewen.yao@intel.com>
Subject: Re: [EXTERNAL] [Patch v3 10/16] UnitTestFrameworkPkg/UnitTestLib: Move print log into cleanup
Date: Wed, 15 Jul 2020 04:07:03 +0000	[thread overview]
Message-ID: <CY4PR21MB074399E01259AC013203EA39EF7E0@CY4PR21MB0743.namprd21.prod.outlook.com> (raw)
In-Reply-To: <20200711020904.24116-11-michael.d.kinney@intel.com>

[-- Attachment #1: Type: text/plain, Size: 3750 bytes --]

Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com>


- Bret

From: Michael D Kinney<mailto:michael.d.kinney@intel.com>
Sent: Friday, July 10, 2020 7:09 PM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io>
Cc: Sean Brogan<mailto:sean.brogan@microsoft.com>; Bret Barkelew<mailto:Bret.Barkelew@microsoft.com>; Yao, Jiewen<mailto:jiewen.yao@intel.com>
Subject: [EXTERNAL] [Patch v3 10/16] UnitTestFrameworkPkg/UnitTestLib: Move print log into cleanup

REF: https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D2805&amp;data=02%7C01%7CBret.Barkelew%40microsoft.com%7C0e54105ccc5b453f790508d8253f690e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637300301563150384&amp;sdata=OY4xwl9Ecv%2F0SJyzzqBUGNxTi1E%2F8Ax70I6jF2dA6cA%3D&amp;reserved=0

If a unit test fails with an exception or an assert, then the
CmockaUnitTestFunctionRunner() is terminated and the logic
that follows the invocation of the unit test is skipped.  This
currently skips the logic that prints log messages.

Move the print of log messages to the end of the function
CmockaUnitTestTeardownFunctionRunner() that is guaranteed to
be executed when a unit test completes normally or is
terminated with an exception or an assert.

Cc: Sean Brogan <sean.brogan@microsoft.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
---
 .../Library/UnitTestLib/RunTestsCmocka.c      | 33 +++++++++----------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/UnitTestFrameworkPkg/Library/UnitTestLib/RunTestsCmocka.c b/UnitTestFrameworkPkg/Library/UnitTestLib/RunTestsCmocka.c
index fb81cc9658..96aa4d9b13 100644
--- a/UnitTestFrameworkPkg/Library/UnitTestLib/RunTestsCmocka.c
+++ b/UnitTestFrameworkPkg/Library/UnitTestLib/RunTestsCmocka.c
@@ -53,21 +53,9 @@ CmockaUnitTestFunctionRunner (
     UnitTest->Result = UNIT_TEST_SKIPPED;
   } else {
     UnitTest->Result = UNIT_TEST_RUNNING;
-
     Framework->CurrentTest = UnitTest;
     UnitTest->Result = UnitTest->RunTest (UnitTest->Context);
     Framework->CurrentTest = NULL;
-
-    // Print out the log messages - This is a partial solution as it
-    // does not get the log into the XML.  Need cmocka changes to support
-    // stdout and stderr in their xml format
-    //
-    if (UnitTest->Log != NULL) {
-      print_message("UnitTest: %s - %s\n", UnitTest->Name, UnitTest->Description);
-      print_message("Log Output Start\n");
-      print_message("%s", UnitTest->Log);
-      print_message("Log Output End\n");
-    }
   }
 }

@@ -112,13 +100,24 @@ CmockaUnitTestTeardownFunctionRunner (
   Suite     = (UNIT_TEST_SUITE *)(UnitTest->ParentSuite);
   Framework = (UNIT_TEST_FRAMEWORK *)(Suite->ParentFramework);

-  if (UnitTest->CleanUp == NULL) {
-    return 0;
+  if (UnitTest->CleanUp != NULL) {
+    Framework->CurrentTest = UnitTest;
+    UnitTest->CleanUp (UnitTest->Context);
+    Framework->CurrentTest = NULL;
+  }
+
+  //
+  // Print out the log messages - This is a partial solution as it
+  // does not get the log into the XML.  Need cmocka changes to support
+  // stdout and stderr in their xml format
+  //
+  if (UnitTest->Log != NULL) {
+    print_message("UnitTest: %s - %s\n", UnitTest->Name, UnitTest->Description);
+    print_message("Log Output Start\n");
+    print_message("%s", UnitTest->Log);
+    print_message("Log Output End\n");
   }

-  Framework->CurrentTest = UnitTest;
-  UnitTest->CleanUp (UnitTest->Context);
-  Framework->CurrentTest = NULL;
   //
   // Return 0 for success.  Non-zero for error.
   //
--
2.21.0.windows.1


[-- Attachment #2: Type: text/html, Size: 7144 bytes --]

  reply	other threads:[~2020-07-15  4:07 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-11  2:08 [Patch v3 00/16] UnitTestFrameworkPkg: Enhancements and bug fixes Michael D Kinney
2020-07-11  2:08 ` [Patch v3 01/16] BaseTools/Python: Allow HOST_APPLICATION to use NULL libraries Michael D Kinney
2020-07-13  2:51   ` Bob Feng
2020-07-11  2:08 ` [Patch v3 02/16] MdePkg/BaseCpuLibNull: Add Null version of CpuLib for host testing Michael D Kinney
2020-07-11  2:08 ` [Patch v3 03/16] MdePkg/BaseCacheMaintenanceLibNull: Add Null instance " Michael D Kinney
2020-07-11  2:08 ` [Patch v3 04/16] MdePkg/BaseLib: Break out IA32/X64 GCC inline privileged functions Michael D Kinney
2020-07-11  2:08 ` [Patch v3 05/16] MdePkg/Library/BaseLib: Add BaseLib instance for host based unit tests Michael D Kinney
2020-07-11  2:08 ` [Patch v3 06/16] UnitTestFrameworkPkg: Use host libraries from MdePkg Michael D Kinney
2020-07-15  4:07   ` [EXTERNAL] " Bret Barkelew
2020-07-11  2:08 ` [Patch v3 07/16] UnitTestFrameworkPkg: Enable source level debug for host tests Michael D Kinney
2020-07-15  4:06   ` [EXTERNAL] " Bret Barkelew
2020-07-11  2:08 ` [Patch v3 08/16] UnitTestFrameworkPkg: Set host application stack size to 256KB Michael D Kinney
2020-07-15  4:06   ` [EXTERNAL] " Bret Barkelew
2020-07-11  2:08 ` [Patch v3 09/16] UnitTestFrameworkPkg: Change target mode DebugLib mapping Michael D Kinney
2020-07-15  4:06   ` [EXTERNAL] " Bret Barkelew
2020-07-11  2:08 ` [Patch v3 10/16] UnitTestFrameworkPkg/UnitTestLib: Move print log into cleanup Michael D Kinney
2020-07-15  4:07   ` Bret Barkelew [this message]
2020-07-11  2:08 ` [Patch v3 11/16] UnitTestFrameworkPkg/UnitTestLib: Fix target mode log messages Michael D Kinney
2020-07-15  4:06   ` [EXTERNAL] " Bret Barkelew
2020-07-11  2:09 ` [Patch v3 12/16] UnitTestFrameworkPkg/UnitTestLib: Add checks for ASSERT() Michael D Kinney
2020-07-14  6:56   ` [edk2-devel] " Liming Gao
2020-07-14 16:26     ` Michael D Kinney
2020-07-15  4:06       ` Bret Barkelew
2020-07-15  4:06   ` [EXTERNAL] " Bret Barkelew
2020-07-11  2:09 ` [Patch v3 13/16] MdePkg/Include: Hook DebugLib _ASSERT() for unit tests Michael D Kinney
2020-07-11  2:09 ` [Patch v3 14/16] MdePkg/Include: Add UT_EXPECT_ASSERT_FAILURE() to UnitTestLib Michael D Kinney
2020-07-11  2:09 ` [Patch v3 15/16] MdePkg/Library/BaseStackCheckLib: Fix PCD type in INF Michael D Kinney
2020-07-12 12:34   ` [edk2-devel] openssl.exe disappeared Kilian Kegel
2020-07-13 15:07     ` Michael D Kinney
2020-07-15 12:26       ` Kilian Kegel
2020-07-11  2:09 ` [Patch v3 16/16] UnitTestFramewokPkg/SampleUnitTest: Use UT_EXPECT_ASSERT_FAILURE() Michael D Kinney
2020-07-14  6:54 ` [edk2-devel] [Patch v3 00/16] UnitTestFrameworkPkg: Enhancements and bug fixes Liming Gao
2020-07-15  4:06   ` Bret Barkelew
2020-07-15  4:07 ` [EXTERNAL] " Bret Barkelew
2020-07-15  4:08 ` Bret Barkelew

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=CY4PR21MB074399E01259AC013203EA39EF7E0@CY4PR21MB0743.namprd21.prod.outlook.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