int main(int argc, char **argv) { RT_NOREF_PV(argv); int rc = RTTestInitAndCreate("tstRTCritSectRw", &g_hTest); if (rc) return 1; RTTestBanner(g_hTest); if (Test1()) { RTCPUID cCores = RTMpGetOnlineCoreCount(); if (argc == 1) { TestNegative(); /* threads, seconds, writePercent, yield, quiet */ Test4( 1, 1, 0, true, false); Test4( 1, 1, 1, true, false); Test4( 1, 1, 5, true, false); Test4( 2, 1, 3, true, false); Test4( 10, 1, 5, true, false); Test4( 10, 10, 10, false, false); if (cCores > 1) { RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking (%u CPU cores)...\n", cCores); for (unsigned cThreads = 1; cThreads < 32; cThreads++) Test4(cThreads, 2, 1, false, true); } else RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "skipping benchmarking (only %u core available)\n", cCores); /** @todo add a testcase where some stuff times out. */ } else { if (cCores > 1) { /* threads, seconds, writePercent, yield, quiet */ RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking (%u CPU cores)...\n", cCores); Test4( 1, 3, 1, false, true); Test4( 1, 3, 1, false, true); Test4( 1, 3, 1, false, true); Test4( 2, 3, 1, false, true); Test4( 2, 3, 1, false, true); Test4( 2, 3, 1, false, true); Test4( 3, 3, 1, false, true); Test4( 3, 3, 1, false, true); Test4( 3, 3, 1, false, true); } else RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "skipping benchmarking (only %u core available)\n", cCores); } } return RTTestSummaryAndDestroy(g_hTest); }
int main(int argc, char **argv) { int rc = RTTestInitAndCreate("tstRTCritSectRw", &g_hTest); if (rc) return 1; RTTestBanner(g_hTest); if (Test1()) { if (argc == 1) { TestNegative(); /* threads, seconds, writePercent, yield, quiet */ Test4( 1, 1, 0, true, false); Test4( 1, 1, 1, true, false); Test4( 1, 1, 5, true, false); Test4( 2, 1, 3, true, false); Test4( 10, 1, 5, true, false); Test4( 10, 10, 10, false, false); RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking...\n"); for (unsigned cThreads = 1; cThreads < 32; cThreads++) Test4(cThreads, 2, 1, false, true); /** @todo add a testcase where some stuff times out. */ } else { /* threads, seconds, writePercent, yield, quiet */ RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking...\n"); Test4( 1, 3, 1, false, true); Test4( 1, 3, 1, false, true); Test4( 1, 3, 1, false, true); Test4( 2, 3, 1, false, true); Test4( 2, 3, 1, false, true); Test4( 2, 3, 1, false, true); Test4( 3, 3, 1, false, true); Test4( 3, 3, 1, false, true); Test4( 3, 3, 1, false, true); } } return RTTestSummaryAndDestroy(g_hTest); }