204 lines
3.9 KiB
C
204 lines
3.9 KiB
C
|
#define __LOG_C__
|
||
|
|
||
|
/*****************************************************************************
|
||
|
/* Log include files
|
||
|
/*****************************************************************************/
|
||
|
#include <windows.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <wtypes.h>
|
||
|
#include <limits.h>
|
||
|
#include "log.h"
|
||
|
#include "hidsdi.h"
|
||
|
|
||
|
#define USE_MACROS
|
||
|
#include "list.h"
|
||
|
|
||
|
#include "hidtest.h"
|
||
|
#include "debug.h"
|
||
|
|
||
|
/*****************************************************************************
|
||
|
/* Local macro definitions
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
#define IS_LOGGING_ON ((NULL != hTestLog) && (IsLogOn))
|
||
|
|
||
|
/*****************************************************************************
|
||
|
/* Module global variable declarations for logging
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
static HANDLE hTestLog = NULL;
|
||
|
static BOOL IsLogOn = FALSE;
|
||
|
|
||
|
static CHAR String[1024];
|
||
|
|
||
|
/*****************************************************************************
|
||
|
/* Exportable logging function definitions
|
||
|
/*****************************************************************************/
|
||
|
|
||
|
BOOL
|
||
|
HIDTest_CreateTestLogA(
|
||
|
IN PCHAR LogName
|
||
|
)
|
||
|
{
|
||
|
hTestLog = tlCreateLog(LogName, TLS_REFRESH | TLS_LOGALL);
|
||
|
if (NULL != hTestLog) {
|
||
|
tlAddParticipant(hTestLog, 0, 1);
|
||
|
}
|
||
|
|
||
|
IsLogOn = (NULL != hTestLog);
|
||
|
return (IsLogOn);
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_CloseTestLogA(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
if (NULL != hTestLog) {
|
||
|
tlRemoveParticipant(hTestLog);
|
||
|
tlDestroyLog(hTestLog);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_SetLogOnA(
|
||
|
BOOL TurnOn
|
||
|
)
|
||
|
{
|
||
|
IsLogOn = TurnOn;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
/*****************************************************************************
|
||
|
/* Local functions to deal with NT based logging
|
||
|
/****************************************************************************/
|
||
|
VOID
|
||
|
HIDTest_LogStartTest(
|
||
|
PCHAR TestName
|
||
|
)
|
||
|
{
|
||
|
if (IS_LOGGING_ON) {
|
||
|
tlLog(hTestLog, TL_INFO, TestName);
|
||
|
tlClearTestStats(hTestLog);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_LogStartTestIteration(
|
||
|
ULONG IterationNumber
|
||
|
)
|
||
|
{
|
||
|
if (IS_LOGGING_ON) {
|
||
|
wsprintf(String, "Iteration number: %u", IterationNumber);
|
||
|
tlLog(hTestLog, TL_INFO, String);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_LogStartVariationWithDeviceHandle(
|
||
|
HANDLE DeviceHandle,
|
||
|
BOOL IsLegal,
|
||
|
PCHAR Description
|
||
|
)
|
||
|
{
|
||
|
wsprintf(String,
|
||
|
"DeviceHandle = %u, IsLegalDeviceHandle = %s, Test Desc: %s",
|
||
|
(DeviceHandle),
|
||
|
(IsLegal) ? "TRUE" : "FALSE",
|
||
|
Description
|
||
|
);
|
||
|
|
||
|
LOG_INTERMEDIATE_VARIATION_RESULT(String);
|
||
|
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_LogStartVariation(
|
||
|
PCHAR Variation
|
||
|
)
|
||
|
{
|
||
|
if (IS_LOGGING_ON) {
|
||
|
tlStartVariation(hTestLog);
|
||
|
tlLog(hTestLog, TL_INFO, Variation);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_LogVariationResult(
|
||
|
INT Level,
|
||
|
PCHAR VarString
|
||
|
)
|
||
|
{
|
||
|
if (IS_LOGGING_ON) {
|
||
|
tlLog(hTestLog, Level | TL_VARIATION, VarString);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_LogEndVariation(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
DWORD dwVariationResult;
|
||
|
|
||
|
if (IS_LOGGING_ON) {
|
||
|
dwVariationResult = tlEndVariation(hTestLog);
|
||
|
tlLog(hTestLog, dwVariationResult | TL_VARIATION, "End variation");
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_LogEndTest(
|
||
|
VOID
|
||
|
)
|
||
|
{
|
||
|
if (IS_LOGGING_ON) {
|
||
|
tlLog(hTestLog, TL_TEST, "");
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_LogIntermediateVariationResult(
|
||
|
IN PCHAR VarResult
|
||
|
)
|
||
|
{
|
||
|
if (IS_LOGGING_ON) {
|
||
|
tlLog(hTestLog, TL_INFO, VarResult);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_LogTestWarning(
|
||
|
IN PCHAR WarningMsg
|
||
|
)
|
||
|
{
|
||
|
if (IS_LOGGING_ON) {
|
||
|
tlLog(hTestLog, TL_WARN, WarningMsg);
|
||
|
}
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
VOID
|
||
|
HIDTest_LogTestError(
|
||
|
IN PCHAR ErrMsg
|
||
|
)
|
||
|
{
|
||
|
if (IS_LOGGING_ON) {
|
||
|
wsprintf(String,
|
||
|
"Critical test error: %s, cannot proceed",
|
||
|
ErrMsg
|
||
|
);
|
||
|
tlLog(hTestLog, TL_SEV1, String);
|
||
|
}
|
||
|
return;
|
||
|
}
|