# File lib/autotest.rb, line 197 def run_tests find_files_to_test # failed + changed/affected cmd = make_test_cmd @files_to_test hook :run_command puts cmd old_sync = $stdout.sync $stdout.sync = true @results = [] line = [] begin open("| #{cmd}", "r") do |f| until f.eof? do c = f.getc putc c line << c if c == ?\n then @results << line.pack("c*") line.clear end end end ensure $stdout.sync = old_sync end hook :ran_command @results = @results.join handle_results(@results) end