Changeset 44220 in vbox
- Timestamp:
- Jan 1, 2013 5:17:26 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 83016
- Location:
- trunk/src/VBox/Runtime
- Files:
-
- 2 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r3/test.cpp
r44192 r44220 242 242 pTest->cchTest = strlen(pszTest); 243 243 pTest->cbGuard = PAGE_SIZE * 7; 244 pTest->enmMaxLevel = RTTESTLVL_ SUB_TEST;244 pTest->enmMaxLevel = RTTESTLVL_INFO; 245 245 246 246 pTest->pOutStrm = g_pStdOut; … … 1410 1410 case RTTESTUNIT_NS_PER_PACKET: return "ns/packet"; 1411 1411 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"; 1412 1416 1413 1417 /* No default so gcc helps us keep this up to date. */ -
trunk/src/VBox/Runtime/testcase/Makefile.kmk
r43645 r44220 122 122 tstRTThreadPoke \ 123 123 tstRTThreadExecutionTime \ 124 tst Time \124 tstRTTime \ 125 125 tstTime-2 \ 126 126 tstTime-3 \ … … 552 552 tstRTThreadExecutionTime_SOURCES = tstRTThreadExecutionTime.cpp 553 553 554 tst Time_TEMPLATE = VBOXR3TSTEXE555 tst Time_SOURCES = tstTime.cpp554 tstRTTime_TEMPLATE = VBOXR3TSTEXE 555 tstRTTime_SOURCES = tstRTTime.cpp 556 556 557 557 tstTime-2_TEMPLATE = VBOXR3TSTEXE -
trunk/src/VBox/Runtime/testcase/tstRTTime.cpp
r44207 r44220 1 1 /* $Id$ */ 2 2 /** @file 3 * IPRT Testcase - Simple RTTime tests .3 * IPRT Testcase - Simple RTTime tests (requires GIP). 4 4 */ 5 5 6 6 /* 7 * Copyright (C) 2006-20 07Oracle Corporation7 * Copyright (C) 2006-2012 Oracle Corporation 8 8 * 9 9 * This file is part of VirtualBox Open Source Edition (OSE), as … … 29 29 *******************************************************************************/ 30 30 #include <iprt/time.h> 31 #include <iprt/stream.h> 31 32 #include <iprt/err.h> 32 33 #include <iprt/initterm.h> 34 #include <iprt/message.h> 35 #include <iprt/test.h> 33 36 #include <iprt/thread.h> 34 #include <VBox/sup.h>35 36 37 37 38 int main() 38 39 { 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); 41 46 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); 44 52 45 53 /* … … 52 60 uint64_t u64OSStartTS = RTTimeSystemNanoTS(); 53 61 62 uint32_t i; 54 63 uint64_t u64Prev = RTTimeNanoTS(); 55 64 for (i = 0; i < 100*_1M; i++) … … 59 68 { 60 69 /** @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; 63 73 RTThreadYield(); 64 74 u64 = RTTimeNanoTS(); … … 66 76 else if (u64 - u64Prev > 1000000000 /* 1sec */) 67 77 { 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; 70 81 RTThreadYield(); 71 82 u64 = RTTimeNanoTS(); … … 73 84 if (!(i & (_1M*2 - 1))) 74 85 { 75 RT Printf("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); 76 87 RTThreadYield(); 77 88 u64 = RTTimeNanoTS(); … … 87 98 int64_t i64Diff = u64OSElapsedTS >= u64RTElapsedTS ? u64OSElapsedTS - u64RTElapsedTS : u64RTElapsedTS - u64OSElapsedTS; 88 99 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 89 103 { 90 RT Printf("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); 93 107 } 94 else95 RTPrintf("tstTime: total time difference: u64OSElapsedTS=%#llx u64RTElapsedTS=%#llx delta=%lld\n",96 u64OSElapsedTS, u64RTElapsedTS, u64OSElapsedTS - u64RTElapsedTS);97 108 98 109 #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); 103 118 #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); 109 121 }
Note:
See TracChangeset
for help on using the changeset viewer.