Share via


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

Code Samples for DTM Logger

Send feedback on this topic
Built on December 10, 2009