From nobody Tue Nov 26 02:52:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+62293+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+62293+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1594267544; cv=none; d=zohomail.com; s=zohoarc; b=i13laUWjhvDAR6UliJ8QFyjtBG5LmHQooR79UahJBauXNoY43CwmrYgn9WFd+uWpq5CayvXqLBaTgy8oYV/3nhBbzAUxNm7Pp/yC2eghvni7FnFNHn6fJYMMcgD6Y3Au12V0W+AVrd88yW55pH7GyfxEiNFmUwZIOSrKQopmlsc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1594267544; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=t7qB/Rxvrr54IQ23X3P2lKWLnscZcRQhTFTdGcryNMY=; b=E15Maol/5mqobxkQvRg1dh5Vi1KsbNX7/dgL1NDEM03iQVEpcQETHb9n+StEZfgPLKDiGObj3/2U2UWqfbYzSFmZjWdDejDdekCRDKthhyuIJQTh33r2H9ETJ60Np90UjC+YHrlDr2Tk5rJg2HMP6Hnz13C7nvEqf7ZEgC5cpNs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+62293+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 15942675445701016.7050604847934; Wed, 8 Jul 2020 21:05:44 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id RgWKYY1788612xibqS5k5F9s; Wed, 08 Jul 2020 21:05:44 -0700 X-Received: from mga07.intel.com (mga07.intel.com []) by mx.groups.io with SMTP id smtpd.web11.4378.1594267536731145998 for ; Wed, 08 Jul 2020 21:05:43 -0700 IronPort-SDR: yD6wkP+a98wTJYcpYncoSdOiYy+yVsZy0txG8rytoQeUktLiErGLKoQGEr4L6kuG8ZgME4vuAl OsCmj2XRmWbg== X-IronPort-AV: E=McAfee;i="6000,8403,9676"; a="212851129" X-IronPort-AV: E=Sophos;i="5.75,330,1589266800"; d="scan'208";a="212851129" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Jul 2020 21:05:42 -0700 IronPort-SDR: Y2s7BeIeWuUq2AHgSGdw7pLV/UPGrb1PXrtTFgi6S0TDS1JsOC1vDqWJWT9jbVEAwe2DDmX17E Eh9ZyLGrXVyA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,330,1589266800"; d="scan'208";a="280163971" X-Received: from mdkinney-mobl2.amr.corp.intel.com ([10.255.230.8]) by orsmga003.jf.intel.com with ESMTP; 08 Jul 2020 21:05:42 -0700 From: "Michael D Kinney" To: devel@edk2.groups.io Cc: Sean Brogan , Bret Barkelew , Jiewen Yao Subject: [edk2-devel] [Patch v2 16/16] UnitTestFramewokPkg/SampleUnitTest: Use UT_EXPECT_ASSERT_FAILURE() Date: Wed, 8 Jul 2020 21:05:21 -0700 Message-Id: <20200709040521.3748-17-michael.d.kinney@intel.com> In-Reply-To: <20200709040521.3748-1-michael.d.kinney@intel.com> References: <20200709040521.3748-1-michael.d.kinney@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,michael.d.kinney@intel.com X-Gm-Message-State: Dp07r6EihlMwT8QjJBHYh3xEx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1594267544; bh=ce1b4Wur/tMwno7SM8GcSGCPPZw9DngjHUAaRg4Yj/g=; h=Cc:Date:From:Reply-To:Subject:To; b=RF0HRWhdYH0ow/1muswL80Dw3OnpT88PLpSDxYwbsc+YWTLA6gH/NGqKIipTnUkPpU9 8neQznUX4o410HcpZjbMoRj2/zrs8KCvD105ozdl+B0W6leQjEx6zsx4z9J66yxv50L9D ow5NwXgh4U2q/wDe0t2jBe5ga6yqje93XEQ= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2801 Add samples for all UnitTestLib macros including using UT_EXPECT_ASSERT_FAILURE() for positive test cases where an ASSERT() is triggered and detected correctly. Additional test cases are added that disable ASSERT()s and verify that UT_EXPECT_ASSERT_FAILURE() macros are skipped. Cc: Sean Brogan Cc: Bret Barkelew Cc: Jiewen Yao Signed-off-by: Michael D Kinney --- .../Sample/SampleUnitTest/SampleUnitTest.c | 510 ++++++++++++++++++ .../SampleUnitTest/SampleUnitTestDxe.inf | 3 + .../SampleUnitTest/SampleUnitTestHost.inf | 3 + .../SampleUnitTest/SampleUnitTestPei.inf | 3 + .../SampleUnitTest/SampleUnitTestSmm.inf | 3 + .../SampleUnitTestUefiShell.inf | 3 + .../Test/UnitTestFrameworkPkgHostTest.dsc | 3 + UnitTestFrameworkPkg/UnitTestFrameworkPkg.dsc | 3 + 8 files changed, 531 insertions(+) diff --git a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/Sampl= eUnitTest.c b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/Samp= leUnitTest.c index 37d5747bca..cb50f45391 100644 --- a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= st.c +++ b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= st.c @@ -181,6 +181,466 @@ GlobalPointerShouldBeChangeable ( return UNIT_TEST_PASSED; } =20 +/** + Unit-Test Test Suite Setup (before) function that enables ASSERT() macro= s. +**/ +VOID +EFIAPI +TestSuiteEnableAsserts ( + VOID + ) +{ + // + // Set BIT0 (DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) + // + PatchPcdSet8 (PcdDebugPropertyMask, PcdGet8 (PcdDebugPropertyMask) | BIT= 0); +} + +/** + Unit-Test Test Suite Setup (before) function that disables ASSERT() macr= os. +**/ +VOID +EFIAPI +TestSuiteDisableAsserts ( + VOID + ) +{ + // + // Clear BIT0 (DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED) + // + PatchPcdSet8 (PcdDebugPropertyMask, PcdGet8 (PcdDebugPropertyMask) & (~B= IT0)); +} + +/** + Sample unit test using the UT_ASSERT_TRUE() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtAssertTrue ( + IN UNIT_TEST_CONTEXT Context + ) +{ + UINT64 Result; + + // + // This test passes because expression always evaluated to TRUE. + // + UT_ASSERT_TRUE (TRUE); + + // + // This test passes because expression always evaluates to TRUE. + // + Result =3D LShiftU64 (BIT0, 1); + UT_ASSERT_TRUE (Result =3D=3D BIT1); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_ASSERT_FALSE() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtAssertFalse ( + IN UNIT_TEST_CONTEXT Context + ) +{ + UINT64 Result; + + // + // This test passes because expression always evaluated to FALSE. + // + UT_ASSERT_FALSE (FALSE); + + // + // This test passes because expression always evaluates to FALSE. + // + Result =3D LShiftU64 (BIT0, 1); + UT_ASSERT_FALSE (Result =3D=3D BIT0); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_ASSERT_EQUAL() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtAssertEqual ( + IN UNIT_TEST_CONTEXT Context + ) +{ + UINT64 Result; + + // + // This test passes because both values are always equal. + // + UT_ASSERT_EQUAL (1, 1); + + // + // This test passes because both values are always equal. + // + Result =3D LShiftU64 (BIT0, 1); + UT_ASSERT_EQUAL (Result, BIT1); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_ASSERT_MEM_EQUAL() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtAssertMemEqual ( + IN UNIT_TEST_CONTEXT Context + ) +{ + CHAR8 *String1; + CHAR8 *String2; + UINTN Length; + + // + // This test passes because String1 and String2 are the same. + // + String1 =3D "Hello"; + String2 =3D "Hello"; + Length =3D sizeof ("Hello"); + UT_ASSERT_MEM_EQUAL (String1, String2, Length); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_ASSERT_NOT_EQUAL() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtAssertNotEqual ( + IN UNIT_TEST_CONTEXT Context + ) +{ + UINT64 Result; + + // + // This test passes because both values are never equal. + // + UT_ASSERT_NOT_EQUAL (0, 1); + + // + // This test passes because both values are never equal. + // + Result =3D LShiftU64 (BIT0, 1); + UT_ASSERT_NOT_EQUAL (Result, BIT0); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_ASSERT_NOT_EFI_ERROR() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtAssertNotEfiError ( + IN UNIT_TEST_CONTEXT Context + ) +{ + // + // This test passes because the status is not an EFI error. + // + UT_ASSERT_NOT_EFI_ERROR (EFI_SUCCESS); + + // + // This test passes because the status is not an EFI error. + // + UT_ASSERT_NOT_EFI_ERROR (EFI_WARN_BUFFER_TOO_SMALL); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_ASSERT_STATUS_EQUAL() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtAssertStatusEqual ( + IN UNIT_TEST_CONTEXT Context + ) +{ + // + // This test passes because the status value are always equal. + // + UT_ASSERT_STATUS_EQUAL (EFI_SUCCESS, EFI_SUCCESS); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_ASSERT_NOT_NULL() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtAssertNotNull ( + IN UNIT_TEST_CONTEXT Context + ) +{ + UINT64 Result; + + // + // This test passes because the pointer is never NULL. + // + UT_ASSERT_NOT_NULL (&Result); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_EXPECT_ASSERT_FAILURE() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtExpectAssertFailure ( + IN UNIT_TEST_CONTEXT Context + ) +{ + // + // This test passes because it directly triggers an ASSERT(). + // + UT_EXPECT_ASSERT_FAILURE (ASSERT (FALSE), NULL); + + // + // This test passes because DecimalToBcd() generates an ASSERT() if the + // value passed in is >=3D 100. The expected ASSERT() is caught by the = unit + // test framework and UT_EXPECT_ASSERT_FAILURE() returns without an erro= r. + // + UT_EXPECT_ASSERT_FAILURE (DecimalToBcd8 (101), NULL); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_LOG_ERROR() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtLogError ( + IN UNIT_TEST_CONTEXT Context + ) +{ + // + // Example of logging. + // + UT_LOG_ERROR ("UT_LOG_ERROR() message\n"); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_LOG_WARNING() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtLogWarning ( + IN UNIT_TEST_CONTEXT Context + ) +{ + // + // Example of logging. + // + UT_LOG_WARNING ("UT_LOG_WARNING() message\n"); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_LOG_INFO() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtLogInfo ( + IN UNIT_TEST_CONTEXT Context + ) +{ + // + // Example of logging. + // + UT_LOG_INFO ("UT_LOG_INFO() message\n"); + + return UNIT_TEST_PASSED; +} + +/** + Sample unit test using the UT_LOG_VERBOSE() macro. + + @param[in] Context [Optional] An optional parameter that enables: + 1) test-case reuse with varied parameters and + 2) test-case re-entry for Target tests that need a + reboot. This parameter is a VOID* and it is the + responsibility of the test author to ensure that = the + contents are well understood by all test cases th= at may + consume it. + + @retval UNIT_TEST_PASSED The Unit test has completed and th= e test + case was successful. + @retval UNIT_TEST_ERROR_TEST_FAILED A test case assertion has failed. +**/ +UNIT_TEST_STATUS +EFIAPI +MacroUtLogVerbose ( + IN UNIT_TEST_CONTEXT Context + ) +{ + // + // Example of logging. + // + UT_LOG_VERBOSE ("UT_LOG_VERBOSE() message\n"); + + return UNIT_TEST_PASSED; +} + /** Initialize the unit test framework, suite, and unit tests for the sample unit tests and run the unit tests. @@ -199,6 +659,8 @@ UefiTestMain ( UNIT_TEST_FRAMEWORK_HANDLE Framework; UNIT_TEST_SUITE_HANDLE SimpleMathTests; UNIT_TEST_SUITE_HANDLE GlobalVarTests; + UNIT_TEST_SUITE_HANDLE MacroTestsAssertsEnabled; + UNIT_TEST_SUITE_HANDLE MacroTestsAssertsDisabled; =20 Framework =3D NULL; =20 @@ -236,6 +698,54 @@ UefiTestMain ( AddTestCase (GlobalVarTests, "You should be able to change a global BOOL= EAN", "Boolean", GlobalBooleanShouldBeChangeable, NULL, NULL, NULL); AddTestCase (GlobalVarTests, "You should be able to change a global poin= ter", "Pointer", GlobalPointerShouldBeChangeable, MakeSureThatPointerIsNull= , ClearThePointer, NULL); =20 + // + // Populate the Macro Tests with ASSERT() enabled + // + Status =3D CreateUnitTestSuite (&MacroTestsAssertsEnabled, Framework, "M= acro Tests with ASSERT() enabled", "Sample.MacroAssertsEnabled", TestSuiteE= nableAsserts, NULL); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Failed in CreateUnitTestSuite for MacroTestsAsse= rtsEnabled\n")); + Status =3D EFI_OUT_OF_RESOURCES; + goto EXIT; + } + AddTestCase (MacroTestsAssertsEnabled, "Test UT_ASSERT_TRUE() macro", = "MacroUtAssertTrue", MacroUtAssertTrue, NULL, NUL= L, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_ASSERT_FALSE() macro", = "MacroUtAssertFalse", MacroUtAssertFalse, NULL, NUL= L, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_ASSERT_EQUAL() macro", = "MacroUtAssertEqual", MacroUtAssertEqual, NULL, NUL= L, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_ASSERT_MEM_EQUAL() macro= ", "MacroUtAssertMemEqual", MacroUtAssertMemEqual, NULL, NUL= L, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_ASSERT_NOT_EQUAL() macro= ", "MacroUtAssertNotEqual", MacroUtAssertNotEqual, NULL, NUL= L, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_ASSERT_NOT_EFI_ERROR() m= acro", "MacroUtAssertNotEfiError", MacroUtAssertNotEfiError, NULL, NUL= L, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_ASSERT_STATUS_EQUAL() ma= cro", "MacroUtAssertStatusEqual", MacroUtAssertStatusEqual, NULL, NUL= L, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_ASSERT_NOT_NULL() macro"= , "MacroUtAssertNotNull", MacroUtAssertNotNull, NULL, NUL= L, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_EXPECT_ASSERT_FAILURE() = macro", "MacroUtExpectAssertFailure", MacroUtExpectAssertFailure, NULL, NUL= L, NULL); + + AddTestCase (MacroTestsAssertsEnabled, "Test UT_LOG_ERROR() macro", "M= acroUtLogError", MacroUtLogError, NULL, NULL, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_LOG_WARNING() macro", "M= acroUtLogWarning", MacroUtLogWarning, NULL, NULL, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_LOG_INFO() macro", "M= acroUtLogInfo", MacroUtLogInfo, NULL, NULL, NULL); + AddTestCase (MacroTestsAssertsEnabled, "Test UT_LOG_VERBOSE() macro", "M= acroUtLogVerbose", MacroUtLogVerbose, NULL, NULL, NULL); + + // + // Populate the Macro Tests with ASSERT() disabled + // + Status =3D CreateUnitTestSuite (&MacroTestsAssertsDisabled, Framework, "= Macro Tests with ASSERT() disabled", "Sample.MacroAssertsDisables", TestSui= teDisableAsserts, NULL); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "Failed in CreateUnitTestSuite for MacroTestsAsse= rtsDisabled\n")); + Status =3D EFI_OUT_OF_RESOURCES; + goto EXIT; + } + AddTestCase (MacroTestsAssertsDisabled, "Test UT_ASSERT_TRUE() macro", = "MacroUtAssertTrue", MacroUtAssertTrue, NULL, NU= LL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_ASSERT_FALSE() macro", = "MacroUtAssertFalse", MacroUtAssertFalse, NULL, NU= LL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_ASSERT_EQUAL() macro", = "MacroUtAssertEqual", MacroUtAssertEqual, NULL, NU= LL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_ASSERT_MEM_EQUAL() macr= o", "MacroUtAssertMemEqual", MacroUtAssertMemEqual, NULL, NU= LL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_ASSERT_NOT_EQUAL() macr= o", "MacroUtAssertNotEqual", MacroUtAssertNotEqual, NULL, NU= LL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_ASSERT_NOT_EFI_ERROR() = macro", "MacroUtAssertNotEfiError", MacroUtAssertNotEfiError, NULL, NU= LL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_ASSERT_STATUS_EQUAL() m= acro", "MacroUtAssertStatusEqual", MacroUtAssertStatusEqual, NULL, NU= LL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_ASSERT_NOT_NULL() macro= ", "MacroUtAssertNotNull", MacroUtAssertNotNull, NULL, NU= LL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_EXPECT_ASSERT_FAILURE()= macro", "MacroUtExpectAssertFailure", MacroUtExpectAssertFailure, NULL, NU= LL, NULL); + + AddTestCase (MacroTestsAssertsDisabled, "Test UT_LOG_ERROR() macro", "= MacroUtLogError", MacroUtLogError, NULL, NULL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_LOG_WARNING() macro", "= MacroUtLogWarning", MacroUtLogWarning, NULL, NULL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_LOG_INFO() macro", "= MacroUtLogInfo", MacroUtLogInfo, NULL, NULL, NULL); + AddTestCase (MacroTestsAssertsDisabled, "Test UT_LOG_VERBOSE() macro", "= MacroUtLogVerbose", MacroUtLogVerbose, NULL, NULL, NULL); + // // Execute the tests. // diff --git a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/Sampl= eUnitTestDxe.inf b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest= /SampleUnitTestDxe.inf index e253cf6e16..a1b1e53789 100644 --- a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stDxe.inf +++ b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stDxe.inf @@ -32,5 +32,8 @@ [LibraryClasses] UnitTestLib PrintLib =20 +[Pcd] + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask + [Depex] TRUE diff --git a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/Sampl= eUnitTestHost.inf b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTes= t/SampleUnitTestHost.inf index 59a367cc6e..681165da3b 100644 --- a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stHost.inf +++ b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stHost.inf @@ -28,3 +28,6 @@ [LibraryClasses] BaseLib DebugLib UnitTestLib + +[Pcd] + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask diff --git a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/Sampl= eUnitTestPei.inf b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest= /SampleUnitTestPei.inf index 60f5252c34..2565f764a0 100644 --- a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stPei.inf +++ b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stPei.inf @@ -32,5 +32,8 @@ [LibraryClasses] UnitTestLib PrintLib =20 +[Pcd] + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask + [Depex] gEfiPeiMemoryDiscoveredPpiGuid diff --git a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/Sampl= eUnitTestSmm.inf b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest= /SampleUnitTestSmm.inf index 324ad2686e..f47bc87df3 100644 --- a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stSmm.inf +++ b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stSmm.inf @@ -33,5 +33,8 @@ [LibraryClasses] UnitTestLib PrintLib =20 +[Pcd] + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask + [Depex] gEfiSmmCpuProtocolGuid diff --git a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/Sampl= eUnitTestUefiShell.inf b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUn= itTest/SampleUnitTestUefiShell.inf index 6e39c229d4..19534e7b1f 100644 --- a/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stUefiShell.inf +++ b/UnitTestFrameworkPkg/Test/UnitTest/Sample/SampleUnitTest/SampleUnitTe= stUefiShell.inf @@ -31,3 +31,6 @@ [LibraryClasses] DebugLib UnitTestLib PrintLib + +[Pcd] + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask diff --git a/UnitTestFrameworkPkg/Test/UnitTestFrameworkPkgHostTest.dsc b/U= nitTestFrameworkPkg/Test/UnitTestFrameworkPkgHostTest.dsc index 70affddead..184fdec87a 100644 --- a/UnitTestFrameworkPkg/Test/UnitTestFrameworkPkgHostTest.dsc +++ b/UnitTestFrameworkPkg/Test/UnitTestFrameworkPkgHostTest.dsc @@ -18,6 +18,9 @@ [Defines] =20 !include UnitTestFrameworkPkg/UnitTestFrameworkPkgHost.dsc.inc =20 +[PcdsPatchableInModule] + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 + [Components] # # Build HOST_APPLICATION that tests the SampleUnitTest diff --git a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dsc b/UnitTestFramew= orkPkg/UnitTestFrameworkPkg.dsc index 0dfd98f2a8..2f0fbfc7cc 100644 --- a/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dsc +++ b/UnitTestFrameworkPkg/UnitTestFrameworkPkg.dsc @@ -20,6 +20,9 @@ [Defines] =20 !include UnitTestFrameworkPkg/UnitTestFrameworkPkgTarget.dsc.inc =20 +[PcdsPatchableInModule] + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 + [Components] UnitTestFrameworkPkg/Library/UnitTestLib/UnitTestLib.inf UnitTestFrameworkPkg/Library/UnitTestPersistenceLibNull/UnitTestPersiste= nceLibNull.inf --=20 2.21.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#62293): https://edk2.groups.io/g/devel/message/62293 Mute This Topic: https://groups.io/mt/75391623/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-