diff options
author | Eric Wong <normalperson@yhbt.net> | 2012-03-20 22:00:47 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2012-03-23 23:48:37 +0000 |
commit | e26358413c9d87e1ce8f6cda5cf0b8dd53979ed2 (patch) | |
tree | 7fa033b6f91868eb98875fe85046e7017397e910 | |
parent | 2cab4f2fa642241dbcaf8881d39bd275a59dc67b (diff) | |
download | kgio-e26358413c9d87e1ce8f6cda5cf0b8dd53979ed2.tar.gz |
Under load, TCP sockets may not register as readable right away after the writer finishes. This can be expected for implementations where loopback TCP is a closer simulation of non-local TCP traffic. These test failures were noticed under FreeBSD 9.0.
-rw-r--r-- | test/lib_read_write.rb | 5 | ||||
-rw-r--r-- | test/test_tcp_connect.rb | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/test/lib_read_write.rb b/test/lib_read_write.rb index cf2f781..c5a60d9 100644 --- a/test/lib_read_write.rb +++ b/test/lib_read_write.rb @@ -57,6 +57,7 @@ module LibReadWriteTest a = "." * 0x1000 b = a.dup @wr.syswrite("a") + IO.select([@rd]) # this seems needed on FreeBSD 9.0 assert_equal "a", @rd.kgio_tryread(0x1000, b) assert_equal "a", b assert_equal "." * 0x1000, a @@ -66,6 +67,7 @@ module LibReadWriteTest a = "." * 0x1000 b = a.dup @wr.syswrite("a") + IO.select([@rd]) # this seems needed on FreeBSD 9.0 assert_equal "a", @rd.kgio_tryread(0x1000, a) assert_equal "a", a assert_equal "." * 0x1000, b @@ -88,6 +90,7 @@ module LibReadWriteTest def test_tryread_eof @wr.close + IO.select([@rd]) # this seems needed on FreeBSD 9.0 assert_nil @rd.kgio_tryread(5) end @@ -157,6 +160,7 @@ module LibReadWriteTest def test_trywrite_conv assert_equal nil, @wr.kgio_trywrite(10) + IO.select([@rd]) # this seems needed on FreeBSD 9.0 assert_equal "10", @rd.kgio_tryread(2) end @@ -182,6 +186,7 @@ module LibReadWriteTest def test_tryread_short assert_equal nil, @wr.kgio_trywrite("hi") + IO.select([@rd]) # this seems needed on FreeBSD 9.0 assert_equal "h", @rd.kgio_tryread(1) assert_equal "i", @rd.kgio_tryread(1) end diff --git a/test/test_tcp_connect.rb b/test/test_tcp_connect.rb index 2dbe541..2cf1b86 100644 --- a/test/test_tcp_connect.rb +++ b/test/test_tcp_connect.rb @@ -78,6 +78,7 @@ class TestKgioTcpConnect < Test::Unit::TestCase def test_wait_writable_set sock = SubSocket.new(@addr) assert_equal "waited", sock.foo if RUBY_PLATFORM =~ /linux/ + IO.select(nil, [sock]) if RUBY_PLATFORM !~ /linux/ assert_equal nil, sock.kgio_write("HELLO") end end |