ruby-changes:27613
From: nagachika <ko1@a...>
Date: Sat, 9 Mar 2013 22:49:16 +0900 (JST)
Subject: [ruby-changes:27613] nagachika:r39665 (ruby_2_0_0): merge revision(s) 39417: [Backport #7904]
nagachika 2013-03-09 22:49:07 +0900 (Sat, 09 Mar 2013) New Revision: 39665 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=39665 Log: merge revision(s) 39417: [Backport #7904] test_process.rb: fix test * test/ruby/test_process.rb (assert_fail_too_long_path): get rid of syntax error on sh, increase command line size until it exceeds the limit. [Bug #7904] Modified directories: branches/ruby_2_0_0/ Modified files: branches/ruby_2_0_0/test/ruby/test_process.rb branches/ruby_2_0_0/version.h Index: ruby_2_0_0/version.h =================================================================== --- ruby_2_0_0/version.h (revision 39664) +++ ruby_2_0_0/version.h (revision 39665) @@ -1,6 +1,6 @@ https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/version.h#L1 #define RUBY_VERSION "2.0.0" #define RUBY_RELEASE_DATE "2013-03-09" -#define RUBY_PATCHLEVEL 34 +#define RUBY_PATCHLEVEL 35 #define RUBY_RELEASE_YEAR 2013 #define RUBY_RELEASE_MONTH 3 Index: ruby_2_0_0/test/ruby/test_process.rb =================================================================== --- ruby_2_0_0/test/ruby/test_process.rb (revision 39664) +++ ruby_2_0_0/test/ruby/test_process.rb (revision 39665) @@ -1380,24 +1380,34 @@ class TestProcess < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/ruby_2_0_0/test/ruby/test_process.rb#L1380 def test_spawn_too_long_path bug4314 = '[ruby-core:34842]' - assert_fail_too_long_path("a", bug4314) + assert_fail_too_long_path(%w"echo", bug4314) end def test_aspawn_too_long_path bug4315 = '[ruby-core:34833]' - assert_fail_too_long_path("a|", bug4315) + assert_fail_too_long_path(%w"echo |", bug4315) end - def assert_fail_too_long_path(cmd, mesg) - size = 1_000_000 / cmd.size + def assert_fail_too_long_path((cmd, sep), mesg) + sep ||= "" + min = 1_000 / (cmd.size + sep.size) + cmds = Array.new(min, cmd) exs = [Errno::ENOENT] exs << Errno::E2BIG if defined?(Errno::E2BIG) EnvUtil.suppress_warning do assert_raise(*exs, mesg) do begin - Process.spawn(cmd * size) + loop do + Process.spawn(cmds.join(sep), [STDOUT, STDERR]=>:close) + min = [cmds.size, min].max + cmds *= 100 + end rescue NoMemoryError - raise if (size /= 2) < 250 + size = cmds.size + raise if min >= size - 1 + min = [min, size /= 2].max + cmds[size..-1] = [] + raise if size < 250 retry end end Property changes on: ruby_2_0_0 ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r39417 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/