1 # -*- encoding: binary -*-
7 $stderr.sync = $stdout.sync = true
8 class TestLinuxTCP_Info < Test::Unit::TestCase
10 TEST_ADDR = ENV['UNICORN_TEST_ADDR'] || '127.0.0.1'
12 # Linux kernel commit 5ee3afba88f5a79d0bff07ddd87af45919259f91
13 TCP_INFO_useful_listenq = `uname -r`.strip >= '2.6.24'
17 s = TCPServer.new(TEST_ADDR, 0)
18 rv = Raindrops::TCP_Info.new s
19 c = TCPSocket.new TEST_ADDR, s.addr[1]
20 tmp = Raindrops::TCP_Info.new s
21 TCP_INFO_useful_listenq and assert_equal 1, tmp.unacked
23 assert_equal 0, rv.unacked
25 tmp = Raindrops::TCP_Info.new s
26 assert_equal 0, tmp.unacked
27 before = tmp.object_id
30 assert_equal before, tmp.object_id
39 s = TCPServer.new TEST_ADDR, 0
40 tmp = Raindrops::TCP_Info.new s
41 tcp_info_methods = tmp.methods - Object.new.methods
42 assert tcp_info_methods.size >= 32
43 tcp_info_methods.each do |m|
44 next if m.to_sym == :get!
46 assert_kind_of Integer, val
53 def test_tcp_server_delayed
55 delay_ms = (delay * 1000).to_i
56 s = TCPServer.new(TEST_ADDR, 0)
57 c = TCPSocket.new TEST_ADDR, s.addr[1]
61 i = Raindrops::TCP_Info.new(a)
62 assert i.last_data_recv >= delay_ms, "#{i.last_data_recv} < #{delay_ms}"
68 end if RUBY_PLATFORM =~ /linux/