Bug #6882 » test.diff
| lib/test/unit/parallel.rb (作業コピー) | ||
|---|---|---|
|
end
|
||
|
|
||
|
def puke(klass, meth, e)
|
||
|
@partial_report << [klass.name, meth, e]
|
||
|
@partial_report << [klass.name, meth, e.is_a?(MiniTest::Assertion) ? e : ProxyError.new(e)]
|
||
|
super
|
||
|
end
|
||
|
end
|
||
| lib/test/unit.rb (作業コピー) | ||
|---|---|---|
|
new(*args).run
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class ProxyError < StandardError
|
||
|
def initialize(ex)
|
||
|
@message = ex.message
|
||
|
@backtrace = ex.backtrace
|
||
|
end
|
||
|
|
||
|
attr_accessor :message, :backtrace
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
| test/testunit/tests_for_parallel/ptest_forth.rb (作業コピー) | ||
|---|---|---|
|
require 'test/unit'
|
||
|
|
||
|
class TestE < Test::Unit::TestCase
|
||
|
class UnknownError < RuntimeError; end
|
||
|
|
||
|
def test_not_fail
|
||
|
assert_equal(1,1)
|
||
|
end
|
||
| ... | ... | |
|
def test_always_fail
|
||
|
assert_equal(0,1)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def test_unknown_error
|
||
|
raise UnknownError, "unknown error"
|
||
|
end
|
||
|
end
|
||
| test/testunit/test_parallel.rb (作業コピー) | ||
|---|---|---|
|
timeout(10) do
|
||
|
@worker_in.puts "run #{TESTS}/ptest_forth.rb test"
|
||
|
i = 0
|
||
|
5.times { @worker_out.gets }
|
||
|
6.times { @worker_out.gets }
|
||
|
buf = @worker_out.gets
|
||
|
assert_match(/^done (.+?)$/, buf)
|
||
|
|
||
| ... | ... | |
|
|
||
|
result = Marshal.load($1.chomp.unpack("m")[0])
|
||
|
|
||
|
assert_equal(result[0],3)
|
||
|
assert_equal(result[1],2)
|
||
|
assert_equal(4, result[0])
|
||
|
assert_equal(2, result[1])
|
||
|
assert_kind_of(Array,result[2])
|
||
|
assert_kind_of(Array,result[3])
|
||
|
assert_kind_of(Array,result[4])
|
||
|
assert_kind_of(Array,result[2][1])
|
||
|
assert_kind_of(MiniTest::Assertion,result[2][0][2])
|
||
|
assert_kind_of(MiniTest::Skip,result[2][1][2])
|
||
|
assert_kind_of(Exception, result[2][2][2])
|
||
|
assert_equal(result[5], "TestE")
|
||
|
end
|
||
|
end
|
||
| ... | ... | |
|
def test_should_run_all_without_any_leaks
|
||
|
spawn_runner
|
||
|
buf = timeout(10){@test_out.read}
|
||
|
assert_match(/^[SF\.]{7}$/,buf)
|
||
|
assert_match(/^[SFE\.]{8}$/,buf)
|
||
|
end
|
||
|
|
||
|
def test_should_retry_failed_on_workers
|
||