#define __LOG_C__ /***************************************************************************** /* Log include files /*****************************************************************************/ #include #include #include #include #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; }