Index: /trunk/src/VBox/Runtime/testcase/tstRTCritSectRw.cpp
===================================================================
--- /trunk/src/VBox/Runtime/testcase/tstRTCritSectRw.cpp	(revision 61869)
+++ /trunk/src/VBox/Runtime/testcase/tstRTCritSectRw.cpp	(revision 61870)
@@ -36,4 +36,5 @@
 #include <iprt/initterm.h>
 #include <iprt/lockvalidator.h>
+#include <iprt/mp.h>
 #include <iprt/rand.h>
 #include <iprt/semaphore.h>
@@ -454,4 +455,5 @@
     if (Test1())
     {
+        RTCPUID cCores = RTMpGetOnlineCoreCount();
         if (argc == 1)
         {
@@ -466,7 +468,12 @@
             Test4(     10,      10,           10,  false,  false);
 
-            RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "benchmarking...\n");
-            for (unsigned cThreads = 1; cThreads < 32; cThreads++)
+            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. */
@@ -474,15 +481,20 @@
         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);
+            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);
         }
     }
Index: /trunk/src/VBox/Runtime/testcase/tstRTSemRW.cpp
===================================================================
--- /trunk/src/VBox/Runtime/testcase/tstRTSemRW.cpp	(revision 61869)
+++ /trunk/src/VBox/Runtime/testcase/tstRTSemRW.cpp	(revision 61870)
@@ -36,4 +36,5 @@
 #include <iprt/initterm.h>
 #include <iprt/lockvalidator.h>
+#include <iprt/mp.h>
 #include <iprt/rand.h>
 #include <iprt/string.h>
@@ -466,4 +467,5 @@
     if (Test1())
     {
+        RTCPUID cCores = RTMpGetOnlineCoreCount();
         if (argc == 1)
         {
@@ -479,7 +481,12 @@
             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);
+            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 CPU core available)\n", cCores);
 
             /** @todo add a testcase where some stuff times out. */
@@ -487,15 +494,20 @@
         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);
+            if (cCores > 1)
+            {
+                /*    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);
+            }
+            else
+                RTTestPrintf(g_hTest, RTTESTLVL_ALWAYS, "skipping benchmarking (only %u CPU core available)\n", cCores);
         }
     }
