12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /** @file
- Unit Test Debug Assert Library
- Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #include <Uefi.h>
- #include <Library/BaseLib.h>
- #include <Library/UnitTestLib.h>
- ///
- /// 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 <FileName> string of "(NULL) Filename" is printed.
- If Description is NULL, then a <Description> 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);
- }
- }
|