audk/UnitTestFrameworkPkg/Library/UnitTestResultReportLib/UnitTestResultReportLibConO...

51 lines
1.1 KiB
C

/** @file
Implement UnitTestResultReportLib doing plain txt out to console
Copyright (c) Microsoft Corporation.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#include <Uefi.h>
#include <Library/BaseLib.h>
#include <Library/PrintLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/DebugLib.h>
VOID
EFIAPI
ReportPrint (
IN CONST CHAR8 *Format,
...
)
{
VA_LIST Marker;
CHAR16 String[256];
UINTN Length;
VA_START (Marker, Format);
Length = UnicodeVSPrintAsciiFormat (String, sizeof (String), Format, Marker);
if (Length == 0) {
DEBUG ((DEBUG_ERROR, "%a formatted string is too long\n", __func__));
} else {
gST->ConOut->OutputString (gST->ConOut, String);
}
VA_END (Marker);
}
VOID
ReportOutput (
IN CONST CHAR8 *Output
)
{
CHAR8 AsciiString[128];
UINTN Length;
UINTN Index;
Length = AsciiStrLen (Output);
for (Index = 0; Index < Length; Index += (sizeof (AsciiString) - 1)) {
AsciiStrnCpyS (AsciiString, sizeof (AsciiString), &Output[Index], sizeof (AsciiString) - 1);
ReportPrint ("%a", AsciiString);
}
}