Index: /trunk/src/VBox/Runtime/testcase/tstRTVfs.cpp
===================================================================
--- /trunk/src/VBox/Runtime/testcase/tstRTVfs.cpp	(revision 57636)
+++ /trunk/src/VBox/Runtime/testcase/tstRTVfs.cpp	(revision 57637)
@@ -40,5 +40,5 @@
 *********************************************************************************************************************************/
 
-static const char *standardHandleToString(RTHANDLESTD enmHandle)
+static const char *StandardHandleToString(RTHANDLESTD enmHandle)
 {
     switch (enmHandle)
@@ -53,32 +53,23 @@
 }
 
-static int tstVfsIoFromStandardHandle(RTTEST hTest, RTHANDLESTD enmHandle)
+static void tstVfsIoFromStandardHandle(RTTEST hTest, RTHANDLESTD enmHandle)
 {
-    RTTestPrintf(hTest, RTTESTLVL_SUB_TEST, "Testing: %s\n", standardHandleToString(enmHandle));
+    RTTestSubF(hTest, "RTVfsIoStrmFromStdHandle(%s)", StandardHandleToString(enmHandle));
 
-    RTVFSIOSTREAM hVfs = NIL_RTVFSIOSTREAM;
-    int rc = RTVfsIoStrmFromStdHandle(enmHandle, 0, true /*fLeaveOpen*/, &hVfs);
+    RTVFSIOSTREAM hVfsIos = NIL_RTVFSIOSTREAM;
+    int rc = RTVfsIoStrmFromStdHandle(enmHandle, 0, true /*fLeaveOpen*/, &hVfsIos);
     if (RT_SUCCESS(rc))
     {
-        bool fOutput =    enmHandle == RTHANDLESTD_OUTPUT
-                       || enmHandle == RTHANDLESTD_ERROR;
+        bool fOutput = enmHandle == RTHANDLESTD_OUTPUT
+                    || enmHandle == RTHANDLESTD_ERROR;
         if (fOutput)
         {
-            RTTestPrintf(hTest, RTTESTLVL_SUB_TEST, "Output for %s:\n", standardHandleToString(enmHandle));
-
-            char *pszBufWritten;
-            int cchBuf = RTStrAPrintf(&pszBufWritten, "Testing %s\n", standardHandleToString(enmHandle));
-            Assert(cchBuf);
-            AssertPtr(pszBufWritten);
+            char szTmp[80];
+            size_t cchTmp = RTStrPrintf(szTmp, sizeof(szTmp), "Test output to %s\n", StandardHandleToString(enmHandle));
 
             size_t cbWritten;
-            rc = RTVfsIoStrmWrite(hVfs, pszBufWritten, strlen(pszBufWritten), true /*fBlocking*/, &cbWritten);
+            RTTESTI_CHECK_RC(rc = RTVfsIoStrmWrite(hVfsIos, szTmp, cchTmp, true /*fBlocking*/, &cbWritten), VINF_SUCCESS);
             if (RT_SUCCESS(rc))
-            {
-                rc = cbWritten == strlen(pszBufWritten) ? VINF_SUCCESS : VERR_NOT_EQUAL;
-                /** @todo Compare written + read output. */
-            }
-
-            RTStrFree(pszBufWritten);
+                RTTESTI_CHECK(cbWritten == cchTmp);
         }
         else
@@ -86,15 +77,13 @@
 
         }
+
+        uint32_t cRefs = RTVfsIoStrmRelease(hVfsIos);
+        RTTESTI_CHECK_MSG(cRefs == 0, ("cRefs=%#x\n", cRefs));
     }
     else
-        RTTestPrintf(hTest, RTTESTLVL_ALWAYS, "Error creating VFS I/O stream for %s: %Rrc\n",
-                     standardHandleToString(enmHandle), rc);
+        RTTestFailed(hTest, "Error creating VFS I/O stream for %s: %Rrc\n", StandardHandleToString(enmHandle), rc);
+}
 
 
-    if (RT_FAILURE(rc))
-        RTTestFailed(hTest, "Testing %s failed: %Rrc\n", standardHandleToString(enmHandle), rc);
-
-    return rc;
-}
 
 int main(int argc, char **argv)
@@ -109,16 +98,7 @@
     RTTestBanner(hTest);
 
-    do
-    {
-        rc = tstVfsIoFromStandardHandle(hTest, RTHANDLESTD_INPUT);
-        RTTESTI_CHECK_BREAK(rc == VINF_SUCCESS);
-
-        rc = tstVfsIoFromStandardHandle(hTest, RTHANDLESTD_OUTPUT);
-        RTTESTI_CHECK_BREAK(rc == VINF_SUCCESS);
-
-        rc = tstVfsIoFromStandardHandle(hTest, RTHANDLESTD_ERROR);
-        RTTESTI_CHECK_BREAK(rc == VINF_SUCCESS);
-
-    } while (0);
+    //tstVfsIoFromStandardHandle(hTest, RTHANDLESTD_INPUT);
+    tstVfsIoFromStandardHandle(hTest, RTHANDLESTD_OUTPUT);
+    tstVfsIoFromStandardHandle(hTest, RTHANDLESTD_ERROR);
 
     /*
