diff options
-rw-r--r-- | ext/raindrops/linux_tcp_info.c | 1 | ||||
-rw-r--r-- | test/test_linux_tcp_info.rb | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/ext/raindrops/linux_tcp_info.c b/ext/raindrops/linux_tcp_info.c index ce1c2d3..dcdb153 100644 --- a/ext/raindrops/linux_tcp_info.c +++ b/ext/raindrops/linux_tcp_info.c @@ -131,6 +131,7 @@ void Init_raindrops_linux_tcp_info(void) cTCP_Info = rb_define_class_under(cRaindrops, "TCP_Info", rb_cObject); rb_define_alloc_func(cTCP_Info, alloc); rb_define_private_method(cTCP_Info, "initialize", init, 1); + rb_define_method(cTCP_Info, "get!", init, 1); #define TCPI_DEFINE_METHOD(x) \ rb_define_method(cTCP_Info, #x, tcp_info_##x, 0) diff --git a/test/test_linux_tcp_info.rb b/test/test_linux_tcp_info.rb index 3b4a245..c947211 100644 --- a/test/test_linux_tcp_info.rb +++ b/test/test_linux_tcp_info.rb @@ -12,6 +12,7 @@ class TestLinuxTCP_Info < Test::Unit::TestCase # Linux kernel commit 5ee3afba88f5a79d0bff07ddd87af45919259f91 TCP_INFO_useful_listenq = `uname -r`.strip >= '2.6.24' + def test_tcp_server s = TCPServer.new(TEST_ADDR, 0) rv = Raindrops::TCP_Info.new s @@ -23,6 +24,11 @@ class TestLinuxTCP_Info < Test::Unit::TestCase a = s.accept tmp = Raindrops::TCP_Info.new s assert_equal 0, tmp.unacked + before = tmp.object_id + + tmp.get!(s) + assert_equal before, tmp.object_id + ensure c.close if c a.close if a @@ -35,6 +41,7 @@ class TestLinuxTCP_Info < Test::Unit::TestCase tcp_info_methods = tmp.methods - Object.new.methods assert tcp_info_methods.size >= 32 tcp_info_methods.each do |m| + next if m.to_sym == :get! val = tmp.__send__ m assert_kind_of Integer, val assert val >= 0 |