Rescue EPIPE in _report
Instead of letting callers rescue the error always.
This commit is contained in:
parent
b5132d91c0
commit
3152977b31
@ -43,10 +43,9 @@ module Test
|
|||||||
th = Thread.new do
|
th = Thread.new do
|
||||||
begin
|
begin
|
||||||
while buf = (self.verbose ? i.gets : i.readpartial(1024))
|
while buf = (self.verbose ? i.gets : i.readpartial(1024))
|
||||||
_report "p", buf
|
_report "p", buf or break
|
||||||
end
|
end
|
||||||
rescue IOError
|
rescue IOError
|
||||||
rescue Errno::EPIPE
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -77,9 +76,7 @@ module Test
|
|||||||
result << ($: - @old_loadpath)
|
result << ($: - @old_loadpath)
|
||||||
result << suite.name
|
result << suite.name
|
||||||
|
|
||||||
begin
|
|
||||||
_report "done", Marshal.dump(result)
|
_report "done", Marshal.dump(result)
|
||||||
rescue Errno::EPIPE; end
|
|
||||||
return result
|
return result
|
||||||
ensure
|
ensure
|
||||||
MiniTest::Unit.output = orig_stdout
|
MiniTest::Unit.output = orig_stdout
|
||||||
@ -128,23 +125,17 @@ module Test
|
|||||||
_run_suites MiniTest::Unit::TestCase.test_suites-suites, $2.to_sym
|
_run_suites MiniTest::Unit::TestCase.test_suites-suites, $2.to_sym
|
||||||
|
|
||||||
if @need_exit
|
if @need_exit
|
||||||
begin
|
|
||||||
_report "bye"
|
_report "bye"
|
||||||
rescue Errno::EPIPE; end
|
|
||||||
exit
|
exit
|
||||||
else
|
else
|
||||||
_report "ready"
|
_report "ready"
|
||||||
end
|
end
|
||||||
when /^quit$/
|
when /^quit$/
|
||||||
begin
|
|
||||||
_report "bye"
|
_report "bye"
|
||||||
rescue Errno::EPIPE; end
|
|
||||||
exit
|
exit
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
rescue Errno::EPIPE
|
|
||||||
rescue Exception => e
|
rescue Exception => e
|
||||||
begin
|
|
||||||
trace = e.backtrace || ['unknown method']
|
trace = e.backtrace || ['unknown method']
|
||||||
err = ["#{trace.shift}: #{e.message} (#{e.class})"] + trace.map{|t| "\t" + t }
|
err = ["#{trace.shift}: #{e.message} (#{e.class})"] + trace.map{|t| "\t" + t }
|
||||||
|
|
||||||
@ -153,7 +144,6 @@ module Test
|
|||||||
else
|
else
|
||||||
raise "failed to report a failure due to lack of @stdout"
|
raise "failed to report a failure due to lack of @stdout"
|
||||||
end
|
end
|
||||||
rescue Errno::EPIPE;end
|
|
||||||
exit
|
exit
|
||||||
ensure
|
ensure
|
||||||
@stdin.close if @stdin
|
@stdin.close if @stdin
|
||||||
@ -163,6 +153,8 @@ module Test
|
|||||||
|
|
||||||
def _report(res, *args) # :nodoc:
|
def _report(res, *args) # :nodoc:
|
||||||
@stdout.write(args.empty? ? "#{res}\n" : "#{res} #{args.pack("m0")}\n")
|
@stdout.write(args.empty? ? "#{res}\n" : "#{res} #{args.pack("m0")}\n")
|
||||||
|
true
|
||||||
|
rescue Errno::EPIPE
|
||||||
rescue TypeError => e
|
rescue TypeError => e
|
||||||
abort("#{e.inspect} in _report(#{res.inspect}, #{args.inspect})\n#{e.backtrace.join("\n")}")
|
abort("#{e.inspect} in _report(#{res.inspect}, #{args.inspect})\n#{e.backtrace.join("\n")}")
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user