VirtualBox

Changeset 61870 in vbox for trunk/src/VBox/Runtime/testcase


Ignore:
Timestamp:
Jun 24, 2016 6:38:49 AM (8 years ago)
Author:
vboxsync
Message:

tstRTCritSectRW, tstRTSemRW: don't benchmark on systems with only 1 host core

Location:
trunk/src/VBox/Runtime/testcase
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/testcase/tstRTCritSectRw.cpp

    r57358 r61870  
    3636#include <iprt/initterm.h>
    3737#include <iprt/lockvalidator.h>
     38#include <iprt/mp.h>
    3839#include <iprt/rand.h>
    3940#include <iprt/semaphore.h>
     
    454455    if (Test1())
    455456    {
     457        RTCPUID cCores = RTMpGetOnlineCoreCount();
    456458        if (argc == 1)
    457459        {
     
    466468            Test4(     10,      10,           10,  false,  false);
    467469
    468             RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking...\n");
    469             for (unsigned cThreads = 1; cThreads < 32; cThreads++)
     470            if (cCores > 1)
     471            {
     472                RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking (%u CPU cores)...\n", cCores);
     473                for (unsigned cThreads = 1; cThreads < 32; cThreads++)
    470474                Test4(cThreads,  2,            1,  false,   true);
     475            }
     476            else
     477                RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "skipping benchmarking (only %u core available)\n", cCores);
    471478
    472479            /** @todo add a testcase where some stuff times out. */
     
    474481        else
    475482        {
    476             /*    threads, seconds, writePercent,  yield,  quiet */
    477             RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking...\n");
    478             Test4(      1,       3,            1,  false,   true);
    479             Test4(      1,       3,            1,  false,   true);
    480             Test4(      1,       3,            1,  false,   true);
    481             Test4(      2,       3,            1,  false,   true);
    482             Test4(      2,       3,            1,  false,   true);
    483             Test4(      2,       3,            1,  false,   true);
    484             Test4(      3,       3,            1,  false,   true);
    485             Test4(      3,       3,            1,  false,   true);
    486             Test4(      3,       3,            1,  false,   true);
     483            if (cCores > 1)
     484            {
     485                /*    threads, seconds, writePercent,  yield,  quiet */
     486                RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking (%u CPU cores)...\n", cCores);
     487                Test4(      1,       3,            1,  false,   true);
     488                Test4(      1,       3,            1,  false,   true);
     489                Test4(      1,       3,            1,  false,   true);
     490                Test4(      2,       3,            1,  false,   true);
     491                Test4(      2,       3,            1,  false,   true);
     492                Test4(      2,       3,            1,  false,   true);
     493                Test4(      3,       3,            1,  false,   true);
     494                Test4(      3,       3,            1,  false,   true);
     495                Test4(      3,       3,            1,  false,   true);
     496            }
     497            else
     498                RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "skipping benchmarking (only %u core available)\n", cCores);
    487499        }
    488500    }
  • trunk/src/VBox/Runtime/testcase/tstRTSemRW.cpp

    r57358 r61870  
    3636#include <iprt/initterm.h>
    3737#include <iprt/lockvalidator.h>
     38#include <iprt/mp.h>
    3839#include <iprt/rand.h>
    3940#include <iprt/string.h>
     
    466467    if (Test1())
    467468    {
     469        RTCPUID cCores = RTMpGetOnlineCoreCount();
    468470        if (argc == 1)
    469471        {
     
    479481            Test4(     10,      10,           10,  false,  false);
    480482
    481             RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking...\n");
    482             for (unsigned cThreads = 1; cThreads < 32; cThreads++)
    483                 Test4(cThreads,  2,            1,  false,   true);
     483            if (cCores > 1)
     484            {
     485                RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking (%u CPU cores)...\n", cCores);
     486                for (unsigned cThreads = 1; cThreads < 32; cThreads++)
     487                    Test4(cThreads,  2,            1,  false,   true);
     488            }
     489            else
     490                RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "skipping benchmarking (only %u CPU core available)\n", cCores);
    484491
    485492            /** @todo add a testcase where some stuff times out. */
     
    487494        else
    488495        {
    489             /*    threads, seconds, writePercent,  yield,  quiet */
    490             RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking...\n");
    491             Test4(      1,       3,            1,  false,   true);
    492             Test4(      1,       3,            1,  false,   true);
    493             Test4(      1,       3,            1,  false,   true);
    494             Test4(      2,       3,            1,  false,   true);
    495             Test4(      2,       3,            1,  false,   true);
    496             Test4(      2,       3,            1,  false,   true);
    497             Test4(      3,       3,            1,  false,   true);
    498             Test4(      3,       3,            1,  false,   true);
    499             Test4(      3,       3,            1,  false,   true);
     496            if (cCores > 1)
     497            {
     498                /*    threads, seconds, writePercent,  yield,  quiet */
     499                RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking...\n");
     500                Test4(      1,       3,            1,  false,   true);
     501                Test4(      1,       3,            1,  false,   true);
     502                Test4(      1,       3,            1,  false,   true);
     503                Test4(      2,       3,            1,  false,   true);
     504                Test4(      2,       3,            1,  false,   true);
     505                Test4(      2,       3,            1,  false,   true);
     506                Test4(      3,       3,            1,  false,   true);
     507                Test4(      3,       3,            1,  false,   true);
     508                Test4(      3,       3,            1,  false,   true);
     509            }
     510            else
     511                RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "skipping benchmarking (only %u CPU core available)\n", cCores);
    500512        }
    501513    }
Note: See TracChangeset for help on using the changeset viewer.

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