summaryrefslogtreecommitdiff
path: root/test/test_open3.rb
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-04 14:24:54 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-04 14:24:54 +0000
commitbca9bf7feff03118ebb9ab58ff57f8f8216d64c4 (patch)
tree230adefa7417411d45079f847a4d4fe5cff30f9c /test/test_open3.rb
parent644d1e7a477ac94f0f8f353a708d39c6fe2927c8 (diff)
* lib/open3.rb (Open3.poutput3): new method.
(Open3.poutput2): ditto. (Open3.poutput2e): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/test_open3.rb')
-rw-r--r--test/test_open3.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/test_open3.rb b/test/test_open3.rb
index 7d45eb5..5acc1c3 100644
--- a/test/test_open3.rb
+++ b/test/test_open3.rb
@@ -123,6 +123,32 @@ class TestOpen3 < Test::Unit::TestCase
}
end
+ def test_poutput3
+ o, e, s = Open3.poutput3(RUBY, '-e', 'i=STDIN.read; print i+"o"; STDOUT.flush; STDERR.print i+"e"', :stdin_data=>"i")
+ assert_equal("io", o)
+ assert_equal("ie", e)
+ assert(s.success?)
+ end
+
+ def test_poutput3_flip
+ o, e, s = Open3.poutput3(RUBY, '-e', 'STDOUT.sync=true; 1000.times { print "o"*1000; STDERR.print "e"*1000 }')
+ assert_equal("o"*1000000, o)
+ assert_equal("e"*1000000, e)
+ assert(s.success?)
+ end
+
+ def test_poutput2
+ o, s = Open3.poutput2(RUBY, '-e', 'i=STDIN.read; print i+"o"', :stdin_data=>"i")
+ assert_equal("io", o)
+ assert(s.success?)
+ end
+
+ def test_poutput2e
+ oe, s = Open3.poutput2e(RUBY, '-e', 'i=STDIN.read; print i+"o"; STDOUT.flush; STDERR.print i+"e"', :stdin_data=>"i")
+ assert_equal("ioie", 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|