[ROSAUTOTEST]
[reactos.git] / rostests / rosautotest / CWineTest.cpp
index f5dbd6b..119b87d 100644 (file)
@@ -178,7 +178,7 @@ CWineTest::GetNextTest()
         m_CurrentFile.clear();
 
         /* Also free the memory for the list buffer */
-        delete m_ListBuffer;
+        delete[] m_ListBuffer;
         m_ListBuffer = NULL;
 
         return false;
@@ -266,6 +266,7 @@ CWineTest::RunTest(CTestInfo* TestInfo)
     stringstream ss, ssFinish;
     DWORD StartTime = GetTickCount();
     float TotalTime;
+    string tailString;
 
     ss << "Running Wine Test, Module: " << TestInfo->Module << ", Test: " << TestInfo->Test << endl;
     StringOut(ss.str());
@@ -299,9 +300,9 @@ CWineTest::RunTest(CTestInfo* TestInfo)
                 if(!ReadFile(m_hReadPipe, Buffer, BytesAvailable, &Temp, NULL))
                     FATAL("ReadFile failed for the test run\n");
 
-                /* Output all test output through StringOut, even while the test is still running */
+                /* Output text through StringOut, even while the test is still running */
                 Buffer[BytesAvailable] = 0;
-                StringOut(string(Buffer));
+                tailString = StringOut(tailString.append(string(Buffer)), false);
 
                 if(Configuration.DoSubmit())
                     TestInfo->Log += Buffer;
@@ -310,6 +311,10 @@ CWineTest::RunTest(CTestInfo* TestInfo)
         while(!BreakLoop);
     }
 
+    /* Print what's left */
+    if(!tailString.empty())
+        StringOut(tailString);
+
     TotalTime = ((float)GetTickCount() - StartTime)/1000;
     ssFinish << "Test " << TestInfo->Test << " completed in ";
     ssFinish << setprecision(2) << fixed << TotalTime << " seconds." << endl;