diff --git a/ChangeLog b/ChangeLog index 56200e6658..d52c7a58e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Dec 2 07:15:12 2010 Nobuyoshi Nakada + + * lib/test/unit.rb (Test::Unit::Mini#_run_suites): show the result + even when interrupted on the way. + Thu Dec 2 07:08:38 2010 Nobuyoshi Nakada * ext/io/console/console.c (setattr): should retry on EINTR. diff --git a/lib/test/unit.rb b/lib/test/unit.rb index e2cff085ef..77f01fac15 100644 --- a/lib/test/unit.rb +++ b/lib/test/unit.rb @@ -163,8 +163,24 @@ module Test @@installed_at_exit = true end - def run(*args) - super + def _run_suites suites, type + @interrupt = nil + result = [] + suites.each {|suite| + begin + result << _run_suite(suite, type) + rescue Interrupt => e + @interrupt = e + break + end + } + result + end + + def status(*args) + result = super + raise @interrupt if @interrupt + result end end end