/** @file Unit Test Debug Assert Library Copyright (c) 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include /// /// Point to jump buffer used with SetJump()/LongJump() to test if a function /// under test generates an expected ASSERT() condition. /// BASE_LIBRARY_JUMP_BUFFER *gUnitTestExpectAssertFailureJumpBuffer = NULL; /** Unit test library replacement for DebugAssert() in DebugLib. If FileName is NULL, then a string of "(NULL) Filename" is printed. If Description is NULL, then a string of "(NULL) Description" is printed. @param FileName The pointer to the name of the source file that generated the assert condition. @param LineNumber The line number in the source file that generated the assert condition @param Description The pointer to the description of the assert condition. **/ VOID EFIAPI UnitTestDebugAssert ( IN CONST CHAR8 *FileName, IN UINTN LineNumber, IN CONST CHAR8 *Description ) { CHAR8 Message[256]; if (gUnitTestExpectAssertFailureJumpBuffer != NULL) { UT_LOG_INFO ("Detected expected ASSERT: %a(%d): %a\n", FileName, LineNumber, Description); LongJump (gUnitTestExpectAssertFailureJumpBuffer, 1); } else { AsciiStrCpyS (Message, sizeof (Message), "Detected unexpected ASSERT("); AsciiStrCatS (Message, sizeof (Message), Description); AsciiStrCatS (Message, sizeof (Message), ")"); UnitTestAssertTrue (FALSE, "", LineNumber, FileName, Message); } }