REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the UnitTestFrameworkPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com>
		
			
				
	
	
		
			584 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			584 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|   Implement UnitTestLib assert services
 | |
| 
 | |
|   Copyright (c) Microsoft Corporation.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| **/
 | |
| 
 | |
| #include <Uefi.h>
 | |
| #include <UnitTestFrameworkTypes.h>
 | |
| #include <Library/UnitTestLib.h>
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/PrintLib.h>
 | |
| 
 | |
| extern BASE_LIBRARY_JUMP_BUFFER  gUnitTestJumpBuffer;
 | |
| 
 | |
| STATIC
 | |
| EFI_STATUS
 | |
| AddUnitTestFailure (
 | |
|   IN OUT UNIT_TEST     *UnitTest,
 | |
|   IN     CONST CHAR8   *FailureMessage,
 | |
|   IN     FAILURE_TYPE  FailureType
 | |
|   )
 | |
| {
 | |
|   //
 | |
|   // Make sure that you're cooking with gas.
 | |
|   //
 | |
|   if ((UnitTest == NULL) || (FailureMessage == NULL)) {
 | |
|     return EFI_INVALID_PARAMETER;
 | |
|   }
 | |
| 
 | |
|   UnitTest->FailureType = FailureType;
 | |
|   AsciiStrCpyS (
 | |
|     &UnitTest->FailureMessage[0],
 | |
|     UNIT_TEST_TESTFAILUREMSG_LENGTH,
 | |
|     FailureMessage
 | |
|     );
 | |
| 
 | |
|   return EFI_SUCCESS;
 | |
| }
 | |
| 
 | |
| STATIC
 | |
| VOID
 | |
| EFIAPI
 | |
| UnitTestLogFailure (
 | |
|   IN FAILURE_TYPE  FailureType,
 | |
|   IN CONST CHAR8   *Format,
 | |
|   ...
 | |
|   )
 | |
| {
 | |
|   UNIT_TEST_FRAMEWORK_HANDLE  FrameworkHandle;
 | |
|   CHAR8                       LogString[UNIT_TEST_TESTFAILUREMSG_LENGTH];
 | |
|   VA_LIST                     Marker;
 | |
| 
 | |
|   //
 | |
|   // Get active Framework handle
 | |
|   //
 | |
|   FrameworkHandle = GetActiveFrameworkHandle ();
 | |
| 
 | |
|   //
 | |
|   // Convert the message to an ASCII String
 | |
|   //
 | |
|   VA_START (Marker, Format);
 | |
|   AsciiVSPrint (LogString, sizeof (LogString), Format, Marker);
 | |
|   VA_END (Marker);
 | |
| 
 | |
|   //
 | |
|   // Finally, add the string to the log.
 | |
|   //
 | |
|   AddUnitTestFailure (
 | |
|     ((UNIT_TEST_FRAMEWORK *)FrameworkHandle)->CurrentTest,
 | |
|     LogString,
 | |
|     FailureType
 | |
|     );
 | |
| 
 | |
|   LongJump (&gUnitTestJumpBuffer, 1);
 | |
| }
 | |
| 
 | |
| /**
 | |
|   If Expression is TRUE, then TRUE is returned.
 | |
|   If Expression is FALSE, then an assert is triggered and the location of the
 | |
|   assert provided by FunctionName, LineNumber, FileName, and Description are
 | |
|   recorded and FALSE is returned.
 | |
| 
 | |
|   @param[in]  Expression    The BOOLEAN result of the expression evaluation.
 | |
|   @param[in]  FunctionName  Null-terminated ASCII string of the function
 | |
|                             executing the assert macro.
 | |
|   @param[in]  LineNumber    The source file line number of the assert macro.
 | |
|   @param[in]  FileName      Null-terminated ASCII string of the filename
 | |
|                             executing the assert macro.
 | |
|   @param[in]  Description   Null-terminated ASCII string of the expression being
 | |
|                             evaluated.
 | |
| 
 | |
|   @retval  TRUE   Expression is TRUE.
 | |
|   @retval  FALSE  Expression is FALSE.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| UnitTestAssertTrue (
 | |
|   IN BOOLEAN      Expression,
 | |
|   IN CONST CHAR8  *FunctionName,
 | |
|   IN UINTN        LineNumber,
 | |
|   IN CONST CHAR8  *FileName,
 | |
|   IN CONST CHAR8  *Description
 | |
|   )
 | |
| {
 | |
|   if (!Expression) {
 | |
|     UT_LOG_ERROR (
 | |
|       "[ASSERT FAIL] %a:%d: Expression (%a) is not TRUE!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       Description
 | |
|       );
 | |
|     UnitTestLogFailure (
 | |
|       FAILURETYPE_ASSERTTRUE,
 | |
|       "%a:%d: Expression (%a) is not TRUE!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       Description
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   return Expression;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   If Expression is FALSE, then TRUE is returned.
 | |
|   If Expression is TRUE, then an assert is triggered and the location of the
 | |
|   assert provided by FunctionName, LineNumber, FileName, and Description are
 | |
|   recorded and FALSE is returned.
 | |
| 
 | |
|   @param[in]  Expression    The BOOLEAN result of the expression evaluation.
 | |
|   @param[in]  FunctionName  Null-terminated ASCII string of the function
 | |
|                             executing the assert macro.
 | |
|   @param[in]  LineNumber    The source file line number of the assert macro.
 | |
|   @param[in]  FileName      Null-terminated ASCII string of the filename
 | |
|                             executing the assert macro.
 | |
|   @param[in]  Description   Null-terminated ASCII string of the expression being
 | |
|                             evaluated.
 | |
| 
 | |
|   @retval  TRUE   Expression is FALSE.
 | |
|   @retval  FALSE  Expression is TRUE.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| UnitTestAssertFalse (
 | |
|   IN BOOLEAN      Expression,
 | |
|   IN CONST CHAR8  *FunctionName,
 | |
|   IN UINTN        LineNumber,
 | |
|   IN CONST CHAR8  *FileName,
 | |
|   IN CONST CHAR8  *Description
 | |
|   )
 | |
| {
 | |
|   if (Expression) {
 | |
|     UT_LOG_ERROR (
 | |
|       "[ASSERT FAIL] %a:%d: Expression (%a) is not FALSE!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       Description
 | |
|       );
 | |
|     UnitTestLogFailure (
 | |
|       FAILURETYPE_ASSERTFALSE,
 | |
|       "%a:%d: Expression(%a) is not FALSE!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       Description
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   return !Expression;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   If Status is not an EFI_ERROR(), then TRUE is returned.
 | |
|   If Status is an EFI_ERROR(), then an assert is triggered and the location of
 | |
|   the assert provided by FunctionName, LineNumber, FileName, and Description are
 | |
|   recorded and FALSE is returned.
 | |
| 
 | |
|   @param[in]  Status        The EFI_STATUS value to evaluate.
 | |
|   @param[in]  FunctionName  Null-terminated ASCII string of the function
 | |
|                             executing the assert macro.
 | |
|   @param[in]  LineNumber    The source file line number of the assert macro.
 | |
|   @param[in]  FileName      Null-terminated ASCII string of the filename
 | |
|                             executing the assert macro.
 | |
|   @param[in]  Description   Null-terminated ASCII string of the status
 | |
|                             expression being evaluated.
 | |
| 
 | |
|   @retval  TRUE   Status is not an EFI_ERROR().
 | |
|   @retval  FALSE  Status is an EFI_ERROR().
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| UnitTestAssertNotEfiError (
 | |
|   IN EFI_STATUS   Status,
 | |
|   IN CONST CHAR8  *FunctionName,
 | |
|   IN UINTN        LineNumber,
 | |
|   IN CONST CHAR8  *FileName,
 | |
|   IN CONST CHAR8  *Description
 | |
|   )
 | |
| {
 | |
|   if (EFI_ERROR (Status)) {
 | |
|     UT_LOG_ERROR (
 | |
|       "[ASSERT FAIL] %a:%d: Status '%a' is EFI_ERROR (%r)!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       Description,
 | |
|       Status
 | |
|       );
 | |
|     UnitTestLogFailure (
 | |
|       FAILURETYPE_ASSERTNOTEFIERROR,
 | |
|       "%a:%d: Status '%a' is EFI_ERROR (%r)!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       Description,
 | |
|       Status
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   return !EFI_ERROR (Status);
 | |
| }
 | |
| 
 | |
| /**
 | |
|   If ValueA is equal ValueB, then TRUE is returned.
 | |
|   If ValueA is not equal to ValueB, then an assert is triggered and the location
 | |
|   of the assert provided by FunctionName, LineNumber, FileName, DescriptionA,
 | |
|   and DescriptionB are recorded and FALSE is returned.
 | |
| 
 | |
|   @param[in]  ValueA        64-bit value.
 | |
|   @param[in]  ValueB        64-bit value.
 | |
|   @param[in]  FunctionName  Null-terminated ASCII string of the function
 | |
|                             executing the assert macro.
 | |
|   @param[in]  LineNumber    The source file line number of the assert macro.
 | |
|   @param[in]  FileName      Null-terminated ASCII string of the filename
 | |
|                             executing the assert macro.
 | |
|   @param[in]  DescriptionA  Null-terminated ASCII string that is a description
 | |
|                             of ValueA.
 | |
|   @param[in]  DescriptionB  Null-terminated ASCII string that is a description
 | |
|                             of ValueB.
 | |
| 
 | |
|   @retval  TRUE   ValueA is equal to ValueB.
 | |
|   @retval  FALSE  ValueA is not equal to ValueB.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| UnitTestAssertEqual (
 | |
|   IN UINT64       ValueA,
 | |
|   IN UINT64       ValueB,
 | |
|   IN CONST CHAR8  *FunctionName,
 | |
|   IN UINTN        LineNumber,
 | |
|   IN CONST CHAR8  *FileName,
 | |
|   IN CONST CHAR8  *DescriptionA,
 | |
|   IN CONST CHAR8  *DescriptionB
 | |
|   )
 | |
| {
 | |
|   if (ValueA != ValueB) {
 | |
|     UT_LOG_ERROR (
 | |
|       "[ASSERT FAIL] %a:%d: Value %a != %a (%d != %d)!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       DescriptionA,
 | |
|       DescriptionB,
 | |
|       ValueA,
 | |
|       ValueB
 | |
|       );
 | |
|     UnitTestLogFailure (
 | |
|       FAILURETYPE_ASSERTEQUAL,
 | |
|       "%a:%d: Value %a != %a (%d != %d)!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       DescriptionA,
 | |
|       DescriptionB,
 | |
|       ValueA,
 | |
|       ValueB
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   return (ValueA == ValueB);
 | |
| }
 | |
| 
 | |
| /**
 | |
|   If the contents of BufferA are identical to the contents of BufferB, then TRUE
 | |
|   is returned.  If the contents of BufferA are not identical to the contents of
 | |
|   BufferB, then an assert is triggered and the location of the assert provided
 | |
|   by FunctionName, LineNumber, FileName, DescriptionA, and DescriptionB are
 | |
|   recorded and FALSE is returned.
 | |
| 
 | |
|   @param[in]  BufferA       Pointer to a buffer for comparison.
 | |
|   @param[in]  BufferB       Pointer to a buffer for comparison.
 | |
|   @param[in]  Length        Number of bytes to compare in BufferA and BufferB.
 | |
|   @param[in]  FunctionName  Null-terminated ASCII string of the function
 | |
|                             executing the assert macro.
 | |
|   @param[in]  LineNumber    The source file line number of the assert macro.
 | |
|   @param[in]  FileName      Null-terminated ASCII string of the filename
 | |
|                             executing the assert macro.
 | |
|   @param[in]  DescriptionA  Null-terminated ASCII string that is a description
 | |
|                             of BufferA.
 | |
|   @param[in]  DescriptionB  Null-terminated ASCII string that is a description
 | |
|                             of BufferB.
 | |
| 
 | |
|   @retval  TRUE   The contents of BufferA are identical to the contents of
 | |
|                   BufferB.
 | |
|   @retval  FALSE  The contents of BufferA are not identical to the contents of
 | |
|                   BufferB.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| UnitTestAssertMemEqual (
 | |
|   IN VOID         *BufferA,
 | |
|   IN VOID         *BufferB,
 | |
|   IN UINTN        Length,
 | |
|   IN CONST CHAR8  *FunctionName,
 | |
|   IN UINTN        LineNumber,
 | |
|   IN CONST CHAR8  *FileName,
 | |
|   IN CONST CHAR8  *DescriptionA,
 | |
|   IN CONST CHAR8  *DescriptionB
 | |
|   )
 | |
| {
 | |
|   if (CompareMem (BufferA, BufferB, Length) != 0) {
 | |
|     UT_LOG_ERROR (
 | |
|       "[ASSERT FAIL] %a:%d: Value %a != %a for length %d bytes!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       DescriptionA,
 | |
|       DescriptionB,
 | |
|       Length
 | |
|       );
 | |
|     UnitTestLogFailure (
 | |
|       FAILURETYPE_ASSERTEQUAL,
 | |
|       "%a:%d: Memory at %a != %a for length %d bytes!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       DescriptionA,
 | |
|       DescriptionB,
 | |
|       Length
 | |
|       );
 | |
|     return FALSE;
 | |
|   }
 | |
| 
 | |
|   return TRUE;
 | |
| }
 | |
| 
 | |
| /**
 | |
|   If ValueA is not equal ValueB, then TRUE is returned.
 | |
|   If ValueA is equal to ValueB, then an assert is triggered and the location
 | |
|   of the assert provided by FunctionName, LineNumber, FileName, DescriptionA
 | |
|   and DescriptionB are recorded and FALSE is returned.
 | |
| 
 | |
|   @param[in]  ValueA        64-bit value.
 | |
|   @param[in]  ValueB        64-bit value.
 | |
|   @param[in]  FunctionName  Null-terminated ASCII string of the function
 | |
|                             executing the assert macro.
 | |
|   @param[in]  LineNumber    The source file line number of the assert macro.
 | |
|   @param[in]  FileName      Null-terminated ASCII string of the filename
 | |
|                             executing the assert macro.
 | |
|   @param[in]  DescriptionA  Null-terminated ASCII string that is a description
 | |
|                             of ValueA.
 | |
|   @param[in]  DescriptionB  Null-terminated ASCII string that is a description
 | |
|                             of ValueB.
 | |
| 
 | |
|   @retval  TRUE   ValueA is not equal to ValueB.
 | |
|   @retval  FALSE  ValueA is equal to ValueB.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| UnitTestAssertNotEqual (
 | |
|   IN UINT64       ValueA,
 | |
|   IN UINT64       ValueB,
 | |
|   IN CONST CHAR8  *FunctionName,
 | |
|   IN UINTN        LineNumber,
 | |
|   IN CONST CHAR8  *FileName,
 | |
|   IN CONST CHAR8  *DescriptionA,
 | |
|   IN CONST CHAR8  *DescriptionB
 | |
|   )
 | |
| {
 | |
|   if (ValueA == ValueB) {
 | |
|     UT_LOG_ERROR (
 | |
|       "[ASSERT FAIL] %a:%d: Value %a == %a (%d == %d)!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       DescriptionA,
 | |
|       DescriptionB,
 | |
|       ValueA,
 | |
|       ValueB
 | |
|       );
 | |
|     UnitTestLogFailure (
 | |
|       FAILURETYPE_ASSERTNOTEQUAL,
 | |
|       "%a:%d: Value %a == %a (%d == %d)!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       DescriptionA,
 | |
|       DescriptionB,
 | |
|       ValueA,
 | |
|       ValueB
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   return (ValueA != ValueB);
 | |
| }
 | |
| 
 | |
| /**
 | |
|   If Status is equal to Expected, then TRUE is returned.
 | |
|   If Status is not equal to Expected, then an assert is triggered and the
 | |
|   location of the assert provided by FunctionName, LineNumber, FileName, and
 | |
|   Description are recorded and FALSE is returned.
 | |
| 
 | |
|   @param[in]  Status        EFI_STATUS value returned from an API under test.
 | |
|   @param[in]  Expected      The expected EFI_STATUS return value from an API
 | |
|                             under test.
 | |
|   @param[in]  FunctionName  Null-terminated ASCII string of the function
 | |
|                             executing the assert macro.
 | |
|   @param[in]  LineNumber    The source file line number of the assert macro.
 | |
|   @param[in]  FileName      Null-terminated ASCII string of the filename
 | |
|                             executing the assert macro.
 | |
|   @param[in]  Description   Null-terminated ASCII string that is a description
 | |
|                             of Status.
 | |
| 
 | |
|   @retval  TRUE   Status is equal to Expected.
 | |
|   @retval  FALSE  Status is not equal to Expected.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| UnitTestAssertStatusEqual (
 | |
|   IN EFI_STATUS   Status,
 | |
|   IN EFI_STATUS   Expected,
 | |
|   IN CONST CHAR8  *FunctionName,
 | |
|   IN UINTN        LineNumber,
 | |
|   IN CONST CHAR8  *FileName,
 | |
|   IN CONST CHAR8  *Description
 | |
|   )
 | |
| {
 | |
|   if (Status != Expected) {
 | |
|     UT_LOG_ERROR (
 | |
|       "[ASSERT FAIL] %a:%d: Status '%a' is %r, should be %r!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       Description,
 | |
|       Status,
 | |
|       Expected
 | |
|       );
 | |
|     UnitTestLogFailure (
 | |
|       FAILURETYPE_ASSERTSTATUSEQUAL,
 | |
|       "%a:%d: Status '%a' is %r, should be %r!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       Description,
 | |
|       Status,
 | |
|       Expected
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   return (Status == Expected);
 | |
| }
 | |
| 
 | |
| /**
 | |
|   If Pointer is not equal to NULL, then TRUE is returned.
 | |
|   If Pointer is equal to NULL, then an assert is triggered and the location of
 | |
|   the assert provided by FunctionName, LineNumber, FileName, and PointerName
 | |
|   are recorded and FALSE is returned.
 | |
| 
 | |
|   @param[in]  Pointer       Pointer value to be checked against NULL.
 | |
|   @param[in]  Expected      The expected EFI_STATUS return value from a function
 | |
|                             under test.
 | |
|   @param[in]  FunctionName  Null-terminated ASCII string of the function
 | |
|                             executing the assert macro.
 | |
|   @param[in]  LineNumber    The source file line number of the assert macro.
 | |
|   @param[in]  FileName      Null-terminated ASCII string of the filename
 | |
|                             executing the assert macro.
 | |
|   @param[in]  PointerName   Null-terminated ASCII string that is a description
 | |
|                             of Pointer.
 | |
| 
 | |
|   @retval  TRUE   Pointer is not equal to NULL.
 | |
|   @retval  FALSE  Pointer is equal to NULL.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| UnitTestAssertNotNull (
 | |
|   IN VOID         *Pointer,
 | |
|   IN CONST CHAR8  *FunctionName,
 | |
|   IN UINTN        LineNumber,
 | |
|   IN CONST CHAR8  *FileName,
 | |
|   IN CONST CHAR8  *PointerName
 | |
|   )
 | |
| {
 | |
|   if (Pointer == NULL) {
 | |
|     UT_LOG_ERROR (
 | |
|       "[ASSERT FAIL] %a:%d: Pointer (%a) is NULL!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       PointerName
 | |
|       );
 | |
|     UnitTestLogFailure (
 | |
|       FAILURETYPE_ASSERTNOTNULL,
 | |
|       "%a:%d: Pointer (%a) is NULL!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       PointerName
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   return (Pointer != NULL);
 | |
| }
 | |
| 
 | |
| /**
 | |
|   If UnitTestStatus is UNIT_TEST_PASSED, then log an info message and return
 | |
|   TRUE because an ASSERT() was expected when FunctionCall was executed and an
 | |
|   ASSERT() was triggered. If UnitTestStatus is UNIT_TEST_SKIPPED, then log a
 | |
|   warning message and return TRUE because ASSERT() macros are disabled.  If
 | |
|   UnitTestStatus is UNIT_TEST_ERROR_TEST_FAILED, then log an error message and
 | |
|   return FALSE because an ASSERT() was expected when FunctionCall was executed,
 | |
|   but no ASSERT() conditions were triggered.  The log messages contain
 | |
|   FunctionName, LineNumber, and FileName strings to provide the location of the
 | |
|   UT_EXPECT_ASSERT_FAILURE() macro.
 | |
| 
 | |
|   @param[in]  UnitTestStatus  The status from UT_EXPECT_ASSERT_FAILURE() that
 | |
|                               is either pass, skipped, or failed.
 | |
|   @param[in]  FunctionName    Null-terminated ASCII string of the function
 | |
|                               executing the UT_EXPECT_ASSERT_FAILURE() macro.
 | |
|   @param[in]  LineNumber      The source file line number of the the function
 | |
|                               executing the UT_EXPECT_ASSERT_FAILURE() macro.
 | |
|   @param[in]  FileName        Null-terminated ASCII string of the filename
 | |
|                               executing the UT_EXPECT_ASSERT_FAILURE() macro.
 | |
|   @param[in]  FunctionCall    Null-terminated ASCII string of the function call
 | |
|                               executed by the UT_EXPECT_ASSERT_FAILURE() macro.
 | |
|   @param[out] ResultStatus    Used to return the UnitTestStatus value to the
 | |
|                               caller of UT_EXPECT_ASSERT_FAILURE().  This is
 | |
|                               optional parameter that may be NULL.
 | |
| 
 | |
|   @retval  TRUE   UnitTestStatus is UNIT_TEST_PASSED.
 | |
|   @retval  TRUE   UnitTestStatus is UNIT_TEST_SKIPPED.
 | |
|   @retval  FALSE  UnitTestStatus is UNIT_TEST_ERROR_TEST_FAILED.
 | |
| **/
 | |
| BOOLEAN
 | |
| EFIAPI
 | |
| UnitTestExpectAssertFailure (
 | |
|   IN  UNIT_TEST_STATUS  UnitTestStatus,
 | |
|   IN  CONST CHAR8       *FunctionName,
 | |
|   IN  UINTN             LineNumber,
 | |
|   IN  CONST CHAR8       *FileName,
 | |
|   IN  CONST CHAR8       *FunctionCall,
 | |
|   OUT UNIT_TEST_STATUS  *ResultStatus  OPTIONAL
 | |
|   )
 | |
| {
 | |
|   if (ResultStatus != NULL) {
 | |
|     *ResultStatus = UnitTestStatus;
 | |
|   }
 | |
| 
 | |
|   if (UnitTestStatus == UNIT_TEST_PASSED) {
 | |
|     UT_LOG_INFO (
 | |
|       "[ASSERT PASS] %a:%d: UT_EXPECT_ASSERT_FAILURE(%a) detected expected assert\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       FunctionCall
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   if (UnitTestStatus == UNIT_TEST_SKIPPED) {
 | |
|     UT_LOG_WARNING (
 | |
|       "[ASSERT WARN] %a:%d: UT_EXPECT_ASSERT_FAILURE(%a) disabled\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       FunctionCall
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   if (UnitTestStatus == UNIT_TEST_ERROR_TEST_FAILED) {
 | |
|     UT_LOG_ERROR (
 | |
|       "[ASSERT FAIL] %a:%d: Function call (%a) did not ASSERT()!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       FunctionCall
 | |
|       );
 | |
|     UnitTestLogFailure (
 | |
|       FAILURETYPE_EXPECTASSERT,
 | |
|       "%a:%d: Function call (%a) did not ASSERT()!\n",
 | |
|       FileName,
 | |
|       LineNumber,
 | |
|       FunctionCall
 | |
|       );
 | |
|   }
 | |
| 
 | |
|   return (UnitTestStatus != UNIT_TEST_ERROR_TEST_FAILED);
 | |
| }
 |