From fd9f6bde957ce681fed49182be02124ecc89b362 Mon Sep 17 00:00:00 2001 From: usa Date: Mon, 10 Nov 2014 10:42:19 +0000 Subject: * win32/win32.c, include/win32/win32.h (rb_w32_set_nonblock): new function to support nonblock-mode of pipes. * win32/win32.c (rb_w32_read): nonblock-mode pipe returns ERROR_NO_DATA if there is no data, but also returns it if remote-end is closed. * win32/win32.c (rb_w32_write): if cannot to write any data, it may be blocking. * io.c (rb_io_set_nonblock): use rb_w32_set_nonblock for Windows. * ext/io/nonblock/nonblock.c (rb_io_nonblock_set): use ruby's API when setting nonblock-mode. * test/ruby/test_io.rb: test nonblock pipes on Windows. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_io.rb | 10 ---------- 1 file changed, 10 deletions(-) (limited to 'test') diff --git a/test/ruby/test_io.rb b/test/ruby/test_io.rb index f6fc27b051..af77da2777 100644 --- a/test/ruby/test_io.rb +++ b/test/ruby/test_io.rb @@ -1259,7 +1259,6 @@ class TestIO < Test::Unit::TestCase end def test_write_nonblock - skip "IO#write_nonblock is not supported on file/pipe." if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM pipe(proc do |w| w.write_nonblock(1) w.close @@ -1269,7 +1268,6 @@ class TestIO < Test::Unit::TestCase end def test_read_nonblock_with_not_empty_buffer - skip "IO#read_nonblock is not supported on file/pipe." if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM with_pipe {|r, w| w.write "foob" w.close @@ -1279,7 +1277,6 @@ class TestIO < Test::Unit::TestCase end def test_write_nonblock_simple_no_exceptions - skip "IO#write_nonblock is not supported on file/pipe." if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM pipe(proc do |w| w.write_nonblock('1', exception: false) w.close @@ -1290,7 +1287,6 @@ class TestIO < Test::Unit::TestCase def test_read_nonblock_error return if !have_nonblock? - skip "IO#read_nonblock is not supported on file/pipe." if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM with_pipe {|r, w| begin r.read_nonblock 4096 @@ -1310,7 +1306,6 @@ class TestIO < Test::Unit::TestCase def test_read_nonblock_no_exceptions return if !have_nonblock? - skip "IO#read_nonblock is not supported on file/pipe." if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM with_pipe {|r, w| assert_equal :wait_readable, r.read_nonblock(4096, exception: false) w.puts "HI!" @@ -1322,7 +1317,6 @@ class TestIO < Test::Unit::TestCase def test_read_nonblock_with_buffer_no_exceptions return if !have_nonblock? - skip "IO#read_nonblock is not supported on file/pipe." if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM with_pipe {|r, w| assert_equal :wait_readable, r.read_nonblock(4096, "", exception: false) w.puts "HI!" @@ -1337,7 +1331,6 @@ class TestIO < Test::Unit::TestCase def test_write_nonblock_error return if !have_nonblock? - skip "IO#write_nonblock is not supported on file/pipe." if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM with_pipe {|r, w| begin loop { @@ -1351,7 +1344,6 @@ class TestIO < Test::Unit::TestCase def test_write_nonblock_no_exceptions return if !have_nonblock? - skip "IO#write_nonblock is not supported on file/pipe." if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM with_pipe {|r, w| loop { ret = w.write_nonblock("a"*100000, exception: false) @@ -2643,7 +2635,6 @@ End end def test_cross_thread_close_fd - skip "cross thread close causes hung-up if pipe." if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM with_pipe do |r,w| read_thread = Thread.new do begin @@ -2932,7 +2923,6 @@ End end def test_readpartial_locktmp - skip "nonblocking mode is not supported for pipe on this platform" if /mswin|bccwin|mingw/ =~ RUBY_PLATFORM bug6099 = '[ruby-dev:45297]' buf = " " * 100 data = "a" * 100 -- cgit v1.2.3