merge revision(s) 45953,45961: [Backport #9767]

* lib/test/unit/parallel.rb: fix test-all parallel failure if a test
	  is skipped after raise.
	  DL::TestFunc#test_sinf is skipped after raise on mingw ruby.
	  But it causes Mashal.load failure due to undefined class/module
	  DL::DLError when doing test-all parallel and test-all doesn't
	  complete. We create new MiniTest::Skip object to avoid Mashal.load
	  failure.
	  [ruby-core:62133] [Bug #9767]

	* test/testunit/test_parallel.rb (TestParallel): add a test.

	* test/testunit/tests_for_parallel/ptest_forth.rb: ditto.
	  But it causes Marshal.load failure due to undefined class/module
	  complete. We create new MiniTest::Skip object to avoid Marshal.load


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@47338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
usa 2014-08-31 07:35:06 +00:00
parent 1f45273499
commit 7b55994cea
5 changed files with 34 additions and 5 deletions

View file

@ -1,3 +1,18 @@
Sun Aug 31 16:32:10 2014 Hiroshi Shirosaki <h.shirosaki@gmail.com>
* lib/test/unit/parallel.rb: fix test-all parallel failure if a test
is skipped after raise.
DL::TestFunc#test_sinf is skipped after raise on mingw ruby.
But it causes Marshal.load failure due to undefined class/module
DL::DLError when doing test-all parallel and test-all doesn't
complete. We create new MiniTest::Skip object to avoid Marshal.load
failure.
[ruby-core:62133] [Bug #9767]
* test/testunit/test_parallel.rb (TestParallel): add a test.
* test/testunit/tests_for_parallel/ptest_forth.rb: ditto.
Sun Aug 31 16:24:54 2014 Tanaka Akira <akr@fsij.org>
* ext/pathname/lib/pathname.rb (cleanpath_aggressive): make all

View file

@ -155,6 +155,11 @@ module Test
end
def puke(klass, meth, e)
if e.is_a?(MiniTest::Skip)
new_e = MiniTest::Skip.new(e.message)
new_e.set_backtrace(e.backtrace)
e = new_e
end
@partial_report << [klass.name, meth, e.is_a?(MiniTest::Assertion) ? e : ProxyError.new(e)]
super
end

View file

@ -91,7 +91,7 @@ module TestParallel
timeout(10) do
@worker_in.puts "run #{TESTS}/ptest_forth.rb test"
i = 0
6.times { @worker_out.gets }
7.times { @worker_out.gets }
buf = @worker_out.gets
assert_match(/^done (.+?)$/, buf)
@ -99,7 +99,7 @@ module TestParallel
result = Marshal.load($1.chomp.unpack("m")[0])
assert_equal(4, result[0])
assert_equal(5, result[0])
assert_equal(2, result[1])
assert_kind_of(Array,result[2])
assert_kind_of(Array,result[3])
@ -107,7 +107,8 @@ module TestParallel
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_kind_of(MiniTest::Skip,result[2][2][2])
assert_kind_of(Exception, result[2][3][2])
assert_equal(result[5], "TestE")
end
end
@ -157,7 +158,7 @@ module TestParallel
def test_should_run_all_without_any_leaks
spawn_runner
buf = timeout(10){@test_out.read}
assert_match(/^[SFE\.]{8}$/,buf)
assert_match(/^[SFE\.]{9}$/,buf)
end
def test_should_retry_failed_on_workers

View file

@ -15,6 +15,14 @@ class TestE < Test::Unit::TestCase
assert_equal(0,1)
end
def test_skip_after_unknown_error
begin
raise UnknownError, "unknown error"
rescue
skip "after raise"
end
end
def test_unknown_error
raise UnknownError, "unknown error"
end

View file

@ -1,6 +1,6 @@
#define RUBY_VERSION "2.0.0"
#define RUBY_RELEASE_DATE "2014-08-31"
#define RUBY_PATCHLEVEL 538
#define RUBY_PATCHLEVEL 539
#define RUBY_RELEASE_YEAR 2014
#define RUBY_RELEASE_MONTH 8