mirror of https://github.com/acidanthera/audk.git
50 lines
1.6 KiB
C
50 lines
1.6 KiB
C
/** @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);
|
|
}
|
|
}
|