mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/open3.rb (Open3.capture3): Ignore Errno::EPIPE for writing
stdin_data. (Open3.capture2): Ditto. (Open3.capture2e): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
44f58afa75
commit
14ad015896
3 changed files with 38 additions and 3 deletions
|
@ -1,3 +1,10 @@
|
|||
Sat Mar 1 19:51:42 2014 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* lib/open3.rb (Open3.capture3): Ignore Errno::EPIPE for writing
|
||||
stdin_data.
|
||||
(Open3.capture2): Ditto.
|
||||
(Open3.capture2e): Ditto.
|
||||
|
||||
Sat Mar 1 19:06:47 2014 Eric Wong <e@80x24.org>
|
||||
|
||||
* gc.c (ruby_gc_set_params): simplify condition
|
||||
|
|
15
lib/open3.rb
15
lib/open3.rb
|
@ -257,7 +257,10 @@ module Open3
|
|||
end
|
||||
out_reader = Thread.new { o.read }
|
||||
err_reader = Thread.new { e.read }
|
||||
i.write stdin_data
|
||||
begin
|
||||
i.write stdin_data
|
||||
rescue Errno::EPIPE
|
||||
end
|
||||
i.close
|
||||
[out_reader.value, err_reader.value, t.value]
|
||||
}
|
||||
|
@ -300,7 +303,10 @@ module Open3
|
|||
o.binmode
|
||||
end
|
||||
out_reader = Thread.new { o.read }
|
||||
i.write stdin_data
|
||||
begin
|
||||
i.write stdin_data
|
||||
rescue Errno::EPIPE
|
||||
end
|
||||
i.close
|
||||
[out_reader.value, t.value]
|
||||
}
|
||||
|
@ -330,7 +336,10 @@ module Open3
|
|||
oe.binmode
|
||||
end
|
||||
outerr_reader = Thread.new { oe.read }
|
||||
i.write stdin_data
|
||||
begin
|
||||
i.write stdin_data
|
||||
rescue Errno::EPIPE
|
||||
end
|
||||
i.close
|
||||
[outerr_reader.value, t.value]
|
||||
}
|
||||
|
|
|
@ -149,6 +149,25 @@ class TestOpen3 < Test::Unit::TestCase
|
|||
assert(s.success?)
|
||||
end
|
||||
|
||||
def test_capture3_stdin_data
|
||||
o, e, s = Open3.capture3(RUBY, '-e', '', :stdin_data=>"z"*(1024*1024))
|
||||
assert_equal("", o)
|
||||
assert_equal("", e)
|
||||
assert(s.success?)
|
||||
end
|
||||
|
||||
def test_capture2_stdin_data
|
||||
o, s = Open3.capture2(RUBY, '-e', '', :stdin_data=>"z"*(1024*1024))
|
||||
assert_equal("", o)
|
||||
assert(s.success?)
|
||||
end
|
||||
|
||||
def test_capture2e_stdin_data
|
||||
oe, s = Open3.capture2e(RUBY, '-e', '', :stdin_data=>"z"*(1024*1024))
|
||||
assert_equal("", oe)
|
||||
assert(s.success?)
|
||||
end
|
||||
|
||||
def test_pipeline_rw
|
||||
Open3.pipeline_rw([RUBY, '-e', 'print STDIN.read + "1"'],
|
||||
[RUBY, '-e', 'print STDIN.read + "2"']) {|i,o,ts|
|
||||
|
|
Loading…
Reference in a new issue