summaryrefslogtreecommitdiff
path: root/test/test_open3.rb
diff options
context:
space:
mode:
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|