class ParallelTests::Test::Runner

def capture_output(out, env, options = {})

read output of the process and print it in chunks
def capture_output(out, env, options = {})
  result = +""
  begin
    loop do
      read = out.readpartial(1000000) # read whatever chunk we can get
      if Encoding.default_internal
        read = read.force_encoding(Encoding.default_internal)
      end
      result << read
      unless options[:serialize_stdout]
        message = read
        message = "[TEST GROUP #{env['TEST_ENV_NUMBER']}] #{message}" if options[:prefix_output_with_test_env_number]
        $stdout.print message
        $stdout.flush
      end
    end
  rescue EOFError
    nil
  end
  result
end