diff options
Diffstat (limited to 'test/test_linux.rb')
-rw-r--r-- | test/test_linux.rb | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/test_linux.rb b/test/test_linux.rb index 5a7269d..d3c8da7 100644 --- a/test/test_linux.rb +++ b/test/test_linux.rb @@ -62,6 +62,32 @@ class TestLinux < Test::Unit::TestCase assert_equal 1, stats[addr].active end + def test_tcp_reuse_sock + nlsock = Raindrops::InetDiagSocket.new + s = TCPServer.new(TEST_ADDR, 0) + port = s.addr[1] + addr = "#{TEST_ADDR}:#{port}" + addrs = [ addr ] + stats = tcp_listener_stats(addrs, nlsock) + assert_equal 1, stats.size + assert_equal 0, stats[addr].queued + assert_equal 0, stats[addr].active + + c = TCPSocket.new(TEST_ADDR, port) + stats = tcp_listener_stats(addrs, nlsock) + assert_equal 1, stats.size + assert_equal 1, stats[addr].queued + assert_equal 0, stats[addr].active + + sc = s.accept + stats = tcp_listener_stats(addrs, nlsock) + assert_equal 1, stats.size + assert_equal 0, stats[addr].queued + assert_equal 1, stats[addr].active + ensure + nlsock.close + end + def test_tcp_multi s1 = TCPServer.new(TEST_ADDR, 0) s2 = TCPServer.new(TEST_ADDR, 0) |