mirror of
https://github.com/sinatra/sinatra
synced 2023-03-27 23:18:01 -04:00
avoid blocking in integration test on jruby
This commit is contained in:
parent
583e97110d
commit
332a7e556c
1 changed files with 8 additions and 1 deletions
|
@ -25,6 +25,13 @@ class IntegrationTest < Test::Unit::TestCase
|
|||
cmd.join(" ")
|
||||
end
|
||||
|
||||
def display_output(pipe)
|
||||
out = ""
|
||||
loop { out << pipe.read_nonblock(1) }
|
||||
rescue
|
||||
$stderr.puts command, out unless out.empty?
|
||||
end
|
||||
|
||||
def with_server
|
||||
pipe = IO.popen(command)
|
||||
error = nil
|
||||
|
@ -38,7 +45,7 @@ class IntegrationTest < Test::Unit::TestCase
|
|||
end
|
||||
end
|
||||
rescue Timeout::Error => e
|
||||
$stderr.puts command, pipe.read if pipe
|
||||
display_output pipe
|
||||
raise error || e
|
||||
ensure
|
||||
Process.kill("TERM", pipe.pid) if pipe
|
||||
|
|
Loading…
Reference in a new issue