Author: tfaber Date: Tue Jun 23 10:06:38 2015 New Revision: 68246
URL: http://svn.reactos.org/svn/reactos?rev=68246&view=rev Log: [ROSAUTOTEST] - Flush cout after each write as already done by Colin in r66855, per ROSTESTS-158 - Use DbgPrint instead of OutputDebugStringA again because the latter only calls the former anyway Fixes test summary lines not being recognized by Testman, especially on VMware.
A little summary so we don't keep going back and forth with this function: 1) Only writing complete lines is required to that the output doesn't mix with debug output from other components. See r55618 2) OutputDebugStringA splits its input into 512-byte-sized blocks with no regard for line breaks, so using it with strings larger than 512 bytes breaks (1). 3) OutputDebugStringA eventually calls DbgPrint("%s", string) anyway so using it with chunks smaller than 512 bytes is not an optimization As a result, yes this function MUST split up the lines itself, this can't be optimized or simplified away! kthxbye ROSTESTS-178 #resolve
Modified: trunk/rostests/rosautotest/tools.cpp
Modified: trunk/rostests/rosautotest/tools.cpp URL: http://svn.reactos.org/svn/reactos/trunk/rostests/rosautotest/tools.cpp?rev=... ============================================================================== --- trunk/rostests/rosautotest/tools.cpp [iso-8859-1] (original) +++ trunk/rostests/rosautotest/tools.cpp [iso-8859-1] Tue Jun 23 10:06:38 2015 @@ -2,7 +2,7 @@ * PROJECT: ReactOS Automatic Testing Utility * LICENSE: GNU GPLv2 or any later version as published by the Free Software Foundation * PURPOSE: Various helper functions - * COPYRIGHT: Copyright 2008-2009 Colin Finck colin@reactos.org + * COPYRIGHT: Copyright 2008-2015 Colin Finck colin@reactos.org */
#include "precomp.h" @@ -136,7 +136,7 @@ }
DbgString[size] = 0; - OutputDebugStringA(DbgString); + DbgPrint("%s", DbgString); }
last_newline = curr_pos; @@ -150,11 +150,11 @@ { /* Output the whole string */ if(Configuration.DoPrint()) - cout << NewString; + cout << NewString << flush;
memcpy(DbgString, NewString.c_str() + start, size); DbgString[size] = 0; - OutputDebugStringA(DbgString); + DbgPrint("%s", DbgString);
NewString.clear(); return NewString; @@ -162,7 +162,7 @@
/* Output full lines only */ if(Configuration.DoPrint()) - cout << NewString.substr(0, start); + cout << NewString.substr(0, start) << flush;
/* Return the remaining chunk */ return NewString.substr(start, size);