Feature #4415
closedRubyのtest-allを並列化するパッチが完成しました
Description
=begin
[ruby-dev:43222] の続きです。経緯などはそちらを参照していただければと思います。¶
パッチが完成したのでチケットを作成しました。
まつもとさんは[ruby-dev:43224]で「バグがとれたら入れちゃったら?」と言っていました。
一部テストについては改変していますが、それについては取りこまなくてもFailになることは無いと思います。
(workerで失敗したテストは並列では無く実行をしなおす為。ただし若干速度に影響がでるかと)
では、コミットをよろしくお願いします。
--patch (git diff --no-prefix)--
diff --git lib/test/unit.rb lib/test/unit.rb
index 76e9fdd..00d7e69 100644
--- lib/test/unit.rb
+++ lib/test/unit.rb
@@ -51,6 +51,11 @@ module Test
non_options(args, options)
@help = orig_args.map { |s| s =~ /[\s|&<>$()]/ ? s.inspect : s }.join " "
@options = options
@@ -75,9 +80,35 @@ module Test
opts.on '-n', '--name PATTERN', "Filter test names on pattern." do |a|
options[:filter] = a
end
+
-
end
@@ -175,7 +206,7 @@ module Test
$: << d
end
begin
@@ -186,32 +217,301 @@ module Test
end
@@ -223,10 +523,6 @@ module Test
end
diff --git lib/test/unit/parallel.rb lib/test/unit/parallel.rb
new file mode 100644
index 0000000..acfdc84
--- /dev/null
+++ lib/test/unit/parallel.rb
@@ -0,0 +1,139 @@
+require 'test/unit'
+
+module Test
- module Unit
- class Worker < Runner
- end
- end
+end
+Test::Unit::Worker.new.run(ARGV)
diff --git test/csv/test_serialization.rb test/csv/test_serialization.rb
index 0adb972..ba19b7a 100755
--- test/csv/test_serialization.rb
+++ test/csv/test_serialization.rb
@@ -131,7 +131,7 @@ class TestCSV::Serialization < TestCSV
def test_io
test_class_dump
- data_file = File.join(File.dirname(FILE), "temp_test_data.csv")
-
data_file = File.join(File.dirname(FILE), "serialization_test_data.csv")
CSV.dump(@names, File.open(data_file, "wb"))assert(File.exist?(data_file))
diff --git test/net/http/test_https.rb test/net/http/test_https.rb
index 983ba7f..12684f6 100644
--- test/net/http/test_https.rb
+++ test/net/http/test_https.rb
@@ -24,7 +24,7 @@ class TestNetHTTPS < Test::Unit::TestCase
- 'port' => 10082, # different from test_http.rb
- 'port' => 10082,
'proxy_host' => nil,
'proxy_port' => nil,
'ssl_enable' => true,
diff --git test/rake/test_file_task.rb test/rake/test_file_task.rb
index 1b0c0a5..0232ac9 100644
--- test/rake/test_file_task.rb
+++ test/rake/test_file_task.rb
@@ -29,7 +29,9 @@ class Rake::TestFileTask < Test::Unit::TestCase
end
- create_timed_files(OLDFILE, NEWFILE)
-
until File.exist?(OLDFILE) && File.exist?(NEWFILE)
-
end
t1 = Rake.application.intern(FileTask, NEWFILE).enhance([OLDFILE])
t2 = Rake.application.intern(FileTask, OLDFILE)
@@ -38,7 +40,9 @@ class Rake::TestFileTask < Test::Unit::TestCase
end
- create_timed_files(OLDFILE, NEWFILE)
-
until File.exist?(OLDFILE) && File.exist?(NEWFILE)
-
end
t1 = Rake.application.intern(FileTask,OLDFILE).enhance([NEWFILE])
t2 = Rake.application.intern(FileTask, NEWFILE)
@@ -93,46 +97,46 @@ class Rake::TestDirectoryTask < Test::Unit::TestCase
include Rake
- rm_rf "testdata", :verbose=>false
- rm_rf "testdata2", :verbose=>false
end
- rm_rf "testdata", :verbose=>false
- rm_rf "testdata2", :verbose=>false
end
- directory "testdata/a/b/c"
- assert_equal FileCreationTask, Task["testdata"].class
- assert_equal FileCreationTask, Task["testdata/a"].class
- assert_equal FileCreationTask, Task["testdata/a/b/c"].class
- assert_nil Task["testdata"].comment
- assert_equal "DESC", Task["testdata/a/b/c"].comment
- assert_nil Task["testdata/a/b"].comment
- directory "testdata2/a/b/c"
- assert_equal FileCreationTask, Task["testdata2"].class
- assert_equal FileCreationTask, Task["testdata2/a"].class
- assert_equal FileCreationTask, Task["testdata2/a/b/c"].class
- assert_nil Task["testdata2"].comment
- assert_equal "DESC", Task["testdata2/a/b/c"].comment
- assert_nil Task["testdata2/a/b"].comment
verbose(false) {
- }
- assert File.exist?("testdata/a/b")
- assert ! File.exist?("testdata/a/b/c")
- assert File.exist?("testdata2/a/b")
- assert ! File.exist?("testdata2/a/b/c")
end
-
end
end
=end
Updated by matz (Yukihiro Matsumoto) over 15 years ago
=begin
まつもと ゆきひろです
In message "Re: [ruby-dev:43226] [Ruby 1.9-Feature#4415][Open] Rubyのtest-allを並列化するパッチが完成しました"
on Mon, 21 Feb 2011 22:09:12 +0900, Shota Fukumori redmine@ruby-lang.org writes:
|Feature #4415: Rubyのtest-allを並列化するパッチが完成しました
|http://redmine.ruby-lang.org/issues/show/4415
|
|起票者: Shota Fukumori
|ステータス: Open, 優先度: Normal
|カテゴリ: lib
|
|# [ruby-dev:43222] の続きです。経緯などはそちらを参照していただければと思います。
|
|パッチが完成したのでチケットを作成しました。
|
|まつもとさんは[ruby-dev:43224]で「バグがとれたら入れちゃったら?」と言っていました。
|
|一部テストについては改変していますが、それについては取りこまなくてもFailになることは無いと思います。
|(workerで失敗したテストは並列では無く実行をしなおす為。ただし若干速度に影響がでるかと)
|
|では、コミットをよろしくお願いします。
コミット権も差し上げましょう。希望するアカウント名、PGP署名
したssh2公開鍵を cvs-admin@ruby-lang.org に送ってください。
久々の最年少更新か。
=end
Updated by kou (Kouhei Sutou) over 15 years ago
=begin
須藤です。
In 4d6263f6f161d_1dc2aafe934324d4@redmine.ruby-lang.org
"[ruby-dev:43226] [Ruby 1.9-Feature#4415][Open] Rubyのtest-allを並列化するパッチが完成しました" on Mon, 21 Feb 2011 22:09:12 +0900,
Shota Fukumori redmine@ruby-lang.org wrote:
パッチが完成したのでチケットを作成しました。
まつもとさんは[ruby-dev:43224]で「バグがとれたら入れちゃったら?」と言っていました。
一部テストについては改変していますが、それについては取りこまなくてもFailになることは無いと思います。
(workerで失敗したテストは並列では無く実行をしなおす為。ただし若干速度に影響がでるかと)では、コミットをよろしくお願いします。
水を差すようで申し訳ないのですが、a, b, xなどの名前に意味の
ない変数名を使わないようにするなど、もう少し整理した方がよい
気がします。
=end
Updated by sorah (Sorah Fukumori) over 15 years ago
=begin
あ、ありがとうございます!
これから出てくるバグに備えて、lib/test/*のメンテナにも立候補したいと思います。
2011/2/21 Yukihiro Matsumoto matz@ruby-lang.org:
コミット権も差し上げましょう。希望するアカウント名、PGP署名
したssh2公開鍵を cvs-admin@ruby-lang.org に送ってください。久々の最年少更新か。
--
Shota Fukumori a.k.a. @sora_h - http://codnote.net/
=end
Updated by sorah (Sorah Fukumori) over 15 years ago
=begin
ふむ。では修正してから取りこみます。
2011/2/21 Kouhei Sutou kou@cozmixng.org:
水を差すようで申し訳ないのですが、a, b, xなどの名前に意味の
ない変数名を使わないようにするなど、もう少し整理した方がよい
気がします。
--
Shota Fukumori a.k.a. @sora_h - http://codnote.net/
=end
Updated by sorah (Sorah Fukumori) over 15 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
=begin
This issue was solved with changeset r30939.
Shota, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
- lib/test/unit.rb: Add new options; --jobs,-j,--ruby,--jobs-status,
--no-retry.
[Feature #4415] [ruby-dev:43226],[ruby-dev:43222],[ruby-core:35294] - lib/test/unit/parallel.rb: Used at test/unit --jobs(-j) option.
- test/csv/test_serialization.rb: test/unit parallel running ready.
- test/rake/test_file_task.rb: test/unit parallel running ready.
=end