Index: trunk/src/VBox/Runtime/testcase/tstR0ThreadPreemption.cpp
===================================================================
--- trunk/src/VBox/Runtime/testcase/tstR0ThreadPreemption.cpp	(revision 19939)
+++ trunk/src/VBox/Runtime/testcase/tstR0ThreadPreemption.cpp	(revision 19940)
@@ -79,4 +79,6 @@
         {
             RTTHREADPREEMPTSTATE State = RTTHREADPREEMPTSTATE_INITIALIZER;
+            if (!RTThreadPreemptIsEnabled(NIL_RTTHREAD))
+                RTStrPrintf(pszErr, cchErr, "RTThreadPreemptIsEnabled returns false by default");
             RTThreadPreemptDisable(&State);
             if (RTThreadPreemptIsEnabled(NIL_RTTHREAD))
@@ -108,10 +110,10 @@
                              && cNanosElapsed < UINT64_C(60)*1000U*1000U*1000U);
                     if (!fPending)
-                        RTStrPrintf(pszErr, cchErr, "!Preempt not pending after %llu loops / %llu ns\n",
+                        RTStrPrintf(pszErr, cchErr, "!Preempt not pending after %llu loops / %llu ns",
                                     cLoops, cNanosElapsed);
                     else if (cLoops == 1)
                         RTStrPrintf(pszErr, cchErr, "!cLoops=0\n");
                     else
-                        RTStrPrintf(pszErr, cchErr, "RTThreadPreemptIsPending returned true after %llu loops / %llu ns\n",
+                        RTStrPrintf(pszErr, cchErr, "RTThreadPreemptIsPending returned true after %llu loops / %llu ns",
                                     cLoops, cNanosElapsed);
                 }
@@ -127,4 +129,5 @@
         case TSTR0THREADPREMEPTION_NESTED:
         {
+            bool const fDefault = RTThreadPreemptIsEnabled(NIL_RTTHREAD);
             RTTHREADPREEMPTSTATE State1 = RTTHREADPREEMPTSTATE_INITIALIZER;
             RTThreadPreemptDisable(&State1);
@@ -154,5 +157,5 @@
                 RTStrPrintf(pszErr, cchErr, "!RTThreadPreemptIsEnabled returns true after 1st RTThreadPreemptDisable");
             RTThreadPreemptRestore(&State1);
-            if (!RTThreadPreemptIsEnabled(NIL_RTTHREAD) && !*pszErr)
+            if (RTThreadPreemptIsEnabled(NIL_RTTHREAD) != fDefault && !*pszErr)
                 RTStrPrintf(pszErr, cchErr, "!RTThreadPreemptIsEnabled returns false after 3rd RTThreadPreemptRestore");
             break;
@@ -160,5 +163,5 @@
 
         default:
-            RTStrPrintf(pszErr, cchErr, "!Unknown test #%d\n", uOperation);
+            RTStrPrintf(pszErr, cchErr, "!Unknown test #%d", uOperation);
             break;
     }
Index: trunk/src/VBox/Runtime/testcase/tstR0ThreadPreemptionDriver.cpp
===================================================================
--- trunk/src/VBox/Runtime/testcase/tstR0ThreadPreemptionDriver.cpp	(revision 19939)
+++ trunk/src/VBox/Runtime/testcase/tstR0ThreadPreemptionDriver.cpp	(revision 19940)
@@ -144,7 +144,9 @@
     if (RT_FAILURE(rc))
         return RTTestSummaryAndDestroy(hTest);
-    RTTESTI_CHECK_MSG(Req.szMsg[0] == '\0', ("%s", Req.szMsg));
     if (Req.szMsg[0] == '!')
+    {    
+        RTTestIFailed("%s", &Req.szMsg[1]);
         return RTTestSummaryAndDestroy(hTest);
+    }
     if (Req.szMsg[0])
         RTTestIPrintf(RTTESTLVL_ALWAYS, "%s", Req.szMsg);
@@ -164,6 +166,7 @@
             ||  i >= 64)
         {
-            RTTESTI_CHECK_MSG(Req.szMsg[0] != '!', ("%s", Req.szMsg));
-            if (Req.szMsg[0])
+            if (Req.szMsg[0] == '!')
+                RTTestIFailed("%s", &Req.szMsg[1]);
+            else if (Req.szMsg[0])
                 RTTestIPrintf(RTTESTLVL_ALWAYS, "%s", Req.szMsg);
             break;
@@ -182,9 +185,8 @@
     RTTESTI_CHECK_RC(rc = SUPR3CallR0Service("tstR0ThreadPreemption", sizeof("tstR0ThreadPreemption") - 1,
                                              TSTR0THREADPREMEPTION_NESTED, 0, &Req.Hdr), VINF_SUCCESS);
-    RTTESTI_CHECK_MSG(Req.szMsg[0] != '!', ("%s", Req.szMsg));
-    if (Req.szMsg[0])
+    if (Req.szMsg[0] == '!')
+        RTTestIFailed("%s", &Req.szMsg[1]);
+    else if (Req.szMsg[0])
         RTTestIPrintf(RTTESTLVL_ALWAYS, "%s", Req.szMsg);
-
-
 
     /*
@@ -194,2 +196,3 @@
 #endif
 }
+
