On 3/11/18 7:52 PM, David Holmes wrote:
On 10/03/2018 6:46 AM, Chris Plummer wrote:
Please help review the following:
In the end there were two issues. The first was that the
pb.redirectError() call was redirecting the LingeredApp's stderr to
the console, which we don't want. The second was that nothing was
capturing the LingeredApp's output and sending it to the driver app's
output (jtr file). These changes make all the LingeredApp's output
end up in the jtr file.
It isn't clear to me how the interleaving of the two streams by the
two threads is handled in the copy routine. Are we guaranteed to get
complete lines of output from each stream before writing to System.out?
I'm hoping Igor will chime in here, since this is just cloned from some
closed code he wrote, and he recommended this fix. Perhaps we are just
doing something a bit non standard here. When spawning a separate test
process, don't we normally just dump stdout and stderr separately via
OutputAnalyzer.reportDiagnosticSummary() after the test completes, and
then only if there is an error. I'm not sure why Igor felt LingeredApp
tests should be handled differently.
Tested by running all tests that use LingeredApp.