diff --git a/ChangeLog b/ChangeLog index f09329e55e..8c7bb4e977 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Mar 9 09:19:55 2016 Rei Odaira + + * test/io/wait/test_io_wait.rb (test_wait_readwrite_timeout): + select(2) in AIX returns "readable" for the write-side fd + of a pipe, so it is not possible to use a pipe to test + the read-write timeout of IO#wait on AIX. + Wed Mar 9 03:35:22 2016 Charles Oliver Nutter * test/ruby/test_require.rb (test_require_with_loaded_features_pop): diff --git a/test/io/wait/test_io_wait.rb b/test/io/wait/test_io_wait.rb index 6c6fd83116..2c1073d104 100644 --- a/test/io/wait/test_io_wait.rb +++ b/test/io/wait/test_io_wait.rb @@ -141,7 +141,14 @@ class TestIOWait < Test::Unit::TestCase def test_wait_readwrite_timeout assert_equal @w, @w.wait(0.01, :read_write) written = fill_pipe - assert_nil @w.wait(0.01, :read_write) + if /aix/ =~ RUBY_PLATFORM + # IO#wait internally uses select(2) on AIX. + # AIX's select(2) returns "readable" for the write-side fd + # of a pipe, so @w.wait(0.01, :read_write) does not return nil. + assert_equal @w, @w.wait(0.01, :read_write) + else + assert_nil @w.wait(0.01, :read_write) + end @r.read(written) assert_equal @w, @w.wait(0.01, :read_write) end