VirtualBox

Changeset 44220 in vbox


Ignore:
Timestamp:
Jan 1, 2013 5:17:26 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
83016
Message:

tstRTTime: Renamed from tstTime, convert to RTTest and restricted the amount of output.

Location:
trunk/src/VBox/Runtime
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/r3/test.cpp

    r44192 r44220  
    242242    pTest->cchTest          = strlen(pszTest);
    243243    pTest->cbGuard          = PAGE_SIZE * 7;
    244     pTest->enmMaxLevel      = RTTESTLVL_SUB_TEST;
     244    pTest->enmMaxLevel      = RTTESTLVL_INFO;
    245245
    246246    pTest->pOutStrm         = g_pStdOut;
     
    14101410        case RTTESTUNIT_NS_PER_PACKET:          return "ns/packet";
    14111411        case RTTESTUNIT_NS_PER_ROUND_TRIP:      return "ns/roundtrips";
     1412        case RTTESTUNIT_PP1K:                   return "pp1k";
     1413        case RTTESTUNIT_PP10K:                  return "pp10k";
     1414        case RTTESTUNIT_PPM:                    return "ppm";
     1415        case RTTESTUNIT_PPB:                    return "ppb";
    14121416
    14131417        /* No default so gcc helps us keep this up to date. */
  • trunk/src/VBox/Runtime/testcase/Makefile.kmk

    r43645 r44220  
    122122        tstRTThreadPoke \
    123123        tstRTThreadExecutionTime \
    124         tstTime \
     124        tstRTTime \
    125125        tstTime-2 \
    126126        tstTime-3 \
     
    552552tstRTThreadExecutionTime_SOURCES = tstRTThreadExecutionTime.cpp
    553553
    554 tstTime_TEMPLATE = VBOXR3TSTEXE
    555 tstTime_SOURCES = tstTime.cpp
     554tstRTTime_TEMPLATE = VBOXR3TSTEXE
     555tstRTTime_SOURCES = tstRTTime.cpp
    556556
    557557tstTime-2_TEMPLATE = VBOXR3TSTEXE
  • trunk/src/VBox/Runtime/testcase/tstRTTime.cpp

    r44207 r44220  
    11/* $Id$ */
    22/** @file
    3  * IPRT Testcase - Simple RTTime tests.
     3 * IPRT Testcase - Simple RTTime tests (requires GIP).
    44 */
    55
    66/*
    7  * Copyright (C) 2006-2007 Oracle Corporation
     7 * Copyright (C) 2006-2012 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    2929*******************************************************************************/
    3030#include <iprt/time.h>
    31 #include <iprt/stream.h>
     31
     32#include <iprt/err.h>
    3233#include <iprt/initterm.h>
     34#include <iprt/message.h>
     35#include <iprt/test.h>
    3336#include <iprt/thread.h>
    34 #include <VBox/sup.h>
    35 
    3637
    3738int main()
    3839{
    39     unsigned cErrors = 0;
    40     int i;
     40    /*
     41     * Init.
     42     */
     43    int rc = RTR3InitExeNoArguments(RTR3INIT_FLAGS_SUPLIB);
     44    if (RT_FAILURE(rc))
     45        return RTMsgInitFailure(rc);
    4146
    42     RTR3InitExeNoArguments(RTR3INIT_FLAGS_SUPLIB);
    43     RTPrintf("tstTime: TESTING...\n");
     47    RTTEST hTest;
     48    rc = RTTestCreate("tstRTTime", &hTest);
     49    if (RT_FAILURE(rc))
     50        return RTEXITCODE_FAILURE;
     51    RTTestBanner(hTest);
    4452
    4553    /*
     
    5260    uint64_t u64OSStartTS = RTTimeSystemNanoTS();
    5361
     62    uint32_t i;
    5463    uint64_t u64Prev = RTTimeNanoTS();
    5564    for (i = 0; i < 100*_1M; i++)
     
    5968        {
    6069            /** @todo wrapping detection. */
    61             RTPrintf("tstTime: error: i=%#010x u64=%#llx u64Prev=%#llx (1)\n", i, u64, u64Prev);
    62             cErrors++;
     70            RTTestFailed(hTest, "i=%#010x u64=%#llx u64Prev=%#llx (1)\n", i, u64, u64Prev);
     71            if (RTTestErrorCount(hTest) >= 256)
     72                break;
    6373            RTThreadYield();
    6474            u64 = RTTimeNanoTS();
     
    6676        else if (u64 - u64Prev > 1000000000 /* 1sec */)
    6777        {
    68             RTPrintf("tstTime: error: i=%#010x u64=%#llx u64Prev=%#llx delta=%lld\n", i, u64, u64Prev, u64 - u64Prev);
    69             cErrors++;
     78            RTTestFailed(hTest, "i=%#010x u64=%#llx u64Prev=%#llx delta=%lld\n", i, u64, u64Prev, u64 - u64Prev);
     79            if (RTTestErrorCount(hTest) >= 256)
     80                break;
    7081            RTThreadYield();
    7182            u64 = RTTimeNanoTS();
     
    7384        if (!(i & (_1M*2 - 1)))
    7485        {
    75             RTPrintf("tstTime: i=%#010x u64=%#llx u64Prev=%#llx delta=%lld\n", i, u64, u64Prev, u64 - u64Prev);
     86            RTTestPrintf(hTest, RTTESTLVL_INFO, "i=%#010x u64=%#llx u64Prev=%#llx delta=%lld\n", i, u64, u64Prev, u64 - u64Prev);
    7687            RTThreadYield();
    7788            u64 = RTTimeNanoTS();
     
    8798    int64_t i64Diff = u64OSElapsedTS >= u64RTElapsedTS ? u64OSElapsedTS - u64RTElapsedTS : u64RTElapsedTS - u64OSElapsedTS;
    8899    if (i64Diff > (int64_t)(u64OSElapsedTS / 1000))
     100        RTTestFailed(hTest, "total time differs too much! u64OSElapsedTS=%#llx u64RTElapsedTS=%#llx delta=%lld\n",
     101                     u64OSElapsedTS, u64RTElapsedTS, u64OSElapsedTS - u64RTElapsedTS);
     102    else
    89103    {
    90         RTPrintf("tstTime: error: total time differs too much! u64OSElapsedTS=%#llx u64RTElapsedTS=%#llx delta=%lld\n",
    91                  u64OSElapsedTS, u64RTElapsedTS, u64OSElapsedTS - u64RTElapsedTS);
    92         cErrors++;
     104        RTTestValue(hTest, "Total time delta", u64OSElapsedTS - u64RTElapsedTS, RTTESTUNIT_NS);
     105        RTTestPrintf(hTest, RTTESTLVL_INFO, "total time difference: u64OSElapsedTS=%#llx u64RTElapsedTS=%#llx delta=%lld\n",
     106                     u64OSElapsedTS, u64RTElapsedTS, u64OSElapsedTS - u64RTElapsedTS);
    93107    }
    94     else
    95         RTPrintf("tstTime: total time difference: u64OSElapsedTS=%#llx u64RTElapsedTS=%#llx delta=%lld\n",
    96                  u64OSElapsedTS, u64RTElapsedTS, u64OSElapsedTS - u64RTElapsedTS);
    97108
    98109#if defined(RT_ARCH_AMD64) || defined(RT_ARCH_X86) /** @todo This isn't really x86 or AMD64 specific... */
    99     RTPrintf("RTTimeDbgSteps   -> %u (%d ppt)\n", RTTimeDbgSteps(),   ((uint64_t)RTTimeDbgSteps() * 1000) / i);
    100     RTPrintf("RTTimeDbgExpired -> %u (%d ppt)\n", RTTimeDbgExpired(), ((uint64_t)RTTimeDbgExpired() * 1000) / i);
    101     RTPrintf("RTTimeDbgBad     -> %u (%d ppt)\n", RTTimeDbgBad(),     ((uint64_t)RTTimeDbgBad() * 1000) / i);
    102     RTPrintf("RTTimeDbgRaces   -> %u (%d ppt)\n", RTTimeDbgRaces(),   ((uint64_t)RTTimeDbgRaces() * 1000) / i);
     110    RTTestValue(hTest, "RTTimeDbgSteps",        RTTimeDbgSteps(),                           RTTESTUNIT_OCCURRENCES);
     111    RTTestValue(hTest, "RTTimeDbgSteps pp",     ((uint64_t)RTTimeDbgSteps() * 1000) / i,    RTTESTUNIT_PP1K);
     112    RTTestValue(hTest, "RTTimeDbgExpired",      RTTimeDbgExpired(),                         RTTESTUNIT_OCCURRENCES);
     113    RTTestValue(hTest, "RTTimeDbgExpired pp",   ((uint64_t)RTTimeDbgExpired() * 1000) / i,  RTTESTUNIT_PP1K);
     114    RTTestValue(hTest, "RTTimeDbgBad",          RTTimeDbgBad(),                             RTTESTUNIT_OCCURRENCES);
     115    RTTestValue(hTest, "RTTimeDbgBad pp",       ((uint64_t)RTTimeDbgBad() * 1000) / i,      RTTESTUNIT_PP1K);
     116    RTTestValue(hTest, "RTTimeDbgRaces",        RTTimeDbgRaces(),                           RTTESTUNIT_OCCURRENCES);
     117    RTTestValue(hTest, "RTTimeDbgRaces pp",     ((uint64_t)RTTimeDbgRaces() * 1000) / i,    RTTESTUNIT_PP1K);
    103118#endif
    104     if (!cErrors)
    105         RTPrintf("tstTime: SUCCESS\n");
    106     else
    107         RTPrintf("tstTime: FAILURE - %d errors\n", cErrors);
    108     return !!cErrors;
     119
     120    return RTTestSummaryAndDestroy(hTest);
    109121}
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette