Issue #7420 has been updated by phasis68 (Heesob Park).


As I know, Errno::EWOULDBLOCK is not the same as Errno::EAGAIN on Windows.

Here is a patch:
diff --git a/test_io_wait.rb b/test_io_wait.rb.new
index 676809c..c322efd 100644
--- a/test_io_wait.rb
+++ b/test_io_wait.rb.new
@@ -101,7 +101,7 @@ private
     buf = " " * 4096
     begin
       written += @w.write_nonblock(buf)
-    rescue Errno::EAGAIN
+    rescue Errno::EAGAIN,Errno::EWOULDBLOCK
       return written
     end while true
   end

----------------------------------------
Bug #7420: Writeable pipe and timeout tests are failing (MinGW)
https://bugs.ruby-lang.org/issues/7420#change-33649

Author: luislavena (Luis Lavena)
Status: Assigned
Priority: Normal
Assignee: nobu (Nobuyoshi Nakada)
Category: test
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-11-22 trunk 37790) [i386-mingw32]


=begin

The tests added in r37785, associated with Feature #4646 might require a guard against Windows because are failing in the Windows CI:

http://ci.rubyinstaller.org/job/ruby-trunk-x64-test-all/246/console
http://ci.rubyinstaller.org/job/ruby-trunk-x86-test-all/346/console

   1) Error:
 test_wait_writable_EPIPE(TestIOWait):
 Errno::EWOULDBLOCK: A non-blocking socket operation could not be completed immediately. - write would block
     C:/Users/Luis/Code/ruby/ruby/test/io/wait/test_io_wait.rb:103:in `write_nonblock'
     C:/Users/Luis/Code/ruby/ruby/test/io/wait/test_io_wait.rb:103:in `fill_pipe'
     C:/Users/Luis/Code/ruby/ruby/test/io/wait/test_io_wait.rb:87:in `test_wait_writable_EPIPE'

   2) Error:
 test_wait_writable_timeout(TestIOWait):
 Errno::EWOULDBLOCK: A non-blocking socket operation could not be completed immediately. - write would block
     C:/Users/Luis/Code/ruby/ruby/test/io/wait/test_io_wait.rb:103:in `write_nonblock'
     C:/Users/Luis/Code/ruby/ruby/test/io/wait/test_io_wait.rb:103:in `fill_pipe'
     C:/Users/Luis/Code/ruby/ruby/test/io/wait/test_io_wait.rb:80:in `test_wait_writable_timeout'

=end


-- 
http://bugs.ruby-lang.org/