Bug #4444

Windowsプラットフォームでtest_parallel.rbがエラー

Added by Motohiro KOSAKI over 4 years ago. Updated about 4 years ago.

[ruby-dev:43273]
Status:Closed
Priority:Normal
Assignee:Shota Fukumori
ruby -v:ruby 1.9.3dev (2011-02-24 trunk 30955) [i386-mswin32_100] Backport:

Description

=begin
c:\ruby\trunk\build>nmake test-all TESTS="-v ../test/testunit/test_parallel.rb"

Microsoft(R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.

     .\ruby.exe -I../lib -I".ext/i386-mswin32_100" -I. "../tool/runruby.rb" --extout=".ext"  -- "../test/runner.rb" -

-ruby=".\ruby.exe -I../lib -I".ext/i386-mswin32_100" -I. "../tool/runruby.rb" --extout=".ext" --" -v ../test/testunit/t
est_parallel.rb
Run options: "--ruby=.\ruby.exe -I../lib -I.ext/i386-mswin32_100 -I. ../tool/runruby.rb --extout=.ext --" -v

# Running tests:

TestParallel::TestParallel#test_jobs_status = 12.00 s = E
TestParallel::TestParallel#test_no_retry_option = 12.00 s = E
TestParallel::TestParallel#test_should_retry_failed_on_workers = 12.00 s = E
TestParallel::TestParallel#test_should_run_all_without_any_leaks = 12.00 s = E
TestParallel::TestParallelWorker#test_accept_run_command_multiple_times = 12.01 s = E
TestParallel::TestParallelWorker#test_done = 2.23 s = .
TestParallel::TestParallelWorker#test_p = 0.21 s = .
TestParallel::TestParallelWorker#test_quit = 0.20 s = E
TestParallel::TestParallelWorker#test_quit_in_test = 0.19 s = E
TestParallel::TestParallelWorker#test_run = 0.32 s = .
TestParallel::TestParallelWorker#test_run_multiple_testcase_in_one_file = 12.00 s = E

Finished tests in 75.201000s, 0.1463 tests/s, 0.3856 assertions/s.

1) Error:
test_jobs_status(TestParallel::TestParallel):
Timeout::Error: execution expired
c:/ruby/trunk/test/testunit/test_parallel.rb:171:in read'
c:/ruby/trunk/test/testunit/test_parallel.rb:171:in
block in test_jobs_status'
c:/ruby/trunk/test/testunit/test_parallel.rb:171:in `test_jobs_status'

2) Error:
test_no_retry_option(TestParallel::TestParallel):
Timeout::Error: execution expired
c:/ruby/trunk/test/testunit/test_parallel.rb:164:in read'
c:/ruby/trunk/test/testunit/test_parallel.rb:164:in
block in test_no_retry_option'
c:/ruby/trunk/test/testunit/test_parallel.rb:164:in `test_no_retry_option'

3) Error:
test_should_retry_failed_on_workers(TestParallel::TestParallel):
Timeout::Error: execution expired
c:/ruby/trunk/test/testunit/test_parallel.rb:157:in read'
c:/ruby/trunk/test/testunit/test_parallel.rb:157:in
block in test_should_retry_failed_on_workers'
c:/ruby/trunk/test/testunit/test_parallel.rb:157:in `test_should_retry_failed_on_workers'

4) Error:
test_should_run_all_without_any_leaks(TestParallel::TestParallel):
Timeout::Error: execution expired
c:/ruby/trunk/test/testunit/test_parallel.rb:151:in read'
c:/ruby/trunk/test/testunit/test_parallel.rb:151:in
block in test_should_run_all_without_any_leaks'
c:/ruby/trunk/test/testunit/test_parallel.rb:151:in `test_should_run_all_without_any_leaks'

5) Error:
test_accept_run_command_multiple_times(TestParallel::TestParallelWorker):
Timeout::Error: execution expired
c:/ruby/trunk/test/testunit/test_parallel.rb:63:in gets'
c:/ruby/trunk/test/testunit/test_parallel.rb:63:in
block in test_accept_run_command_multiple_times'
c:/ruby/trunk/test/testunit/test_parallel.rb:56:in `test_accept_run_command_multiple_times'

6) Error:
test_quit(TestParallel::TestParallelWorker):
Errno::EPERM: Operation not permitted
c:/ruby/trunk/test/testunit/test_parallel.rb:25:in kill'
c:/ruby/trunk/test/testunit/test_parallel.rb:25:in
rescue in teardown'
c:/ruby/trunk/test/testunit/test_parallel.rb:19:in `teardown'

7) Error:
test_quit_in_test(TestParallel::TestParallelWorker):
Errno::EPERM: Operation not permitted
c:/ruby/trunk/test/testunit/test_parallel.rb:25:in kill'
c:/ruby/trunk/test/testunit/test_parallel.rb:25:in
rescue in teardown'
c:/ruby/trunk/test/testunit/test_parallel.rb:19:in `teardown'

8) Error:
test_run_multiple_testcase_in_one_file(TestParallel::TestParallelWorker):
Timeout::Error: execution expired
c:/ruby/trunk/test/testunit/test_parallel.rb:51:in gets'
c:/ruby/trunk/test/testunit/test_parallel.rb:51:in
block in test_run_multiple_testcase_in_one_file'
c:/ruby/trunk/test/testunit/test_parallel.rb:42:in `test_run_multiple_testcase_in_one_file'

11 tests, 29 assertions, 0 failures, 8 errors, 0 skips
NMAKE : fatal error U1077: '.\ruby.exe' : リターン コード '0x8'
Stop.

なお、 Windows上で nmake test-all TESTS="-j2" などと-jを指定するとテストがハングアップしてしまうので
並列ビルドの仕組みはまったく動いていないのではないでしょうか?

=end

History

#1 Updated by Motohiro KOSAKI over 4 years ago

=begin
書き忘れましたが、test_parallel.rb でエラーがおきるとログにファイル名が残りません(普通はテスト名の横にファイル名と行番号が出る)。これは切り分けを難しくしているので、いっしょに直していただきたいと思います。
=end

#2 Updated by Shota Fukumori over 4 years ago

  • % Done changed from 0 to 50

=begin
とりあえずある程度動作はまともになった気がしますがまだ一部テストで刺さります。

で、自分のWindowsが入ったマシン (MacBook)のHDDが死にそうな感じなのでテストが厳しくなってきました。
git diffがエラーを吐いたりする程度に一部ファイルが壊れてる感じです。

誰か協力してくれると助かります。
=end

#3 Updated by Shota Fukumori over 4 years ago

=begin
追記です。

test_parallel.rbはWindowsで無効化しました。今言ったのは普通に-j4などでtest-allをした場合の挙動です。
=end

#4 Updated by Koichi Sasada about 4 years ago

こちら,いかがでしょうか.

#5 Updated by Motohiro KOSAKI about 4 years ago

  • Status changed from Assigned to Closed

動くようになっているので、closeします。usaさん++

#6 Updated by Shota Fukumori about 4 years ago

  • % Done changed from 50 to 100

Also available in: Atom PDF