[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]