DTM Logger Example Using C
The following C language code example logs several different trace levels.
void __cdecl main (int argc, char *argv[])
{
HRESULT hr = S_OK;
LONG hDevice = 0;
hr = WTTLogCreateLogDevice(
L"$LocalPub($LogFile:file=\"foo.xml\",writemode=overwrite;$Console)",
&hDevice
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_FUNCTION_ENTRY,
__WFILE__,
L"main"
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_MACHINEINFO,
NULL, // OS
L"Windows XP", // platform
L"5.1", // version (upgrade path)
L"Main", // VBL
L"3615.00", // build number
L"20050229", // build date
L"EN-US", // language
NULL // config
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_TCMINFO,
-1, // Test case ID
L"$\\\\DTM Logger\\COM Test", // node path
NULL, // Test case title -- set later
NULL, // Hash key
NULL, // Created by
NULL, // Modified by
NULL, // Assigned to
NULL, // Test type
NULL, // Result type
NULL, // Milestone
NULL, // Priority
NULL, // Test time
NULL, // Comments
NULL, // Method
NULL, // Frequency
NULL, // Description
NULL, // Scripts
NULL, // Log file path
NULL, // Suite
NULL, // Area
NULL, // Component
NULL, // Sub component
NULL, // Dev
NULL, // Test lead
FALSE, // Create only
TRUE, // Log only
FALSE // Recursive
);
hr = WTTLogStartTest(
hDevice,
L"DTM Logger Test"
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_MSG,
L"This is a unit test."
);
hr = WTTLogAddErrorToErrorList(
S_OK,
WTT_ERROR_TYPE_HRESULT,
WTT_ERROR_LIST_EXPECTED
);
hr = WTTLogCheckResult(
hDevice,
S_OK,
WTT_ERROR_TYPE_HRESULT,
__WFILE__,
__LINE__,
L"This should pass, and does not log"
);
hr = WTTLogRemoveErrorFromErrorList(
S_OK,
WTT_ERROR_TYPE_HRESULT,
WTT_ERROR_LIST_EXPECTED
);
hr = WTTLogCheckResult(
hDevice,
S_OK,
WTT_ERROR_TYPE_HRESULT,
__WFILE__,
__LINE__,
L"This should fail, and it should log"
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_ERR,
E_POINTER,
WTT_ERROR_TYPE_HRESULT,
__WFILE__,
__LINE__,
L"This is an error"
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_INVALID_PARAM,
__WFILE__,
__LINE__
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_BUG,
L"BugDB",
890403
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_BREAK,
E_POINTER,
WTT_ERROR_TYPE_HRESULT,
__WFILE__,
__LINE__,
L"This is a break"
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_WARN,
__WFILE__,
__LINE__,
L"This is a warning message"
);
hr = WTTLogUserDefinedTrace(
hDevice,
L"MyLvl",
WTT_LVL_MSG,
100000,
L"%s",
L"This is a user defined trace."
);
hr = WTTLogAssert(
hDevice,
FALSE,
__WFILE__,
__LINE__,
L"This is an assert"
);
hr = WTTLogEndTest(
hDevice,
L"DTM Logger COM Test",
WTT_TESTCASE_RESULT_PASS,
L"This is the repro line"
);
hr = WTTLogTrace(
hDevice,
WTT_LVL_FUNCTION_EXIT,
__WFILE__,
L"main"
);
hr = WTTLogPFRollup(
hDevice,
0,
0,
0,
0,
0
);
hr = WTTLogCloseLogDevice(
hDevice,
NULL
);
// Mandatory call to destroy the global Logger
WTTLogUninit();
return;
}
See Also
Send feedback on this topic
Built on December 10, 2009