9 @srv.close unless @srv.closed?
10 Kgio.accept_cloexec = true
11 Kgio.accept_nonblock = false
14 def test_tryaccept_success
17 b = @srv.kgio_tryaccept
18 assert_kind_of Kgio::Socket, b
19 assert_equal @host, b.kgio_addr
22 def test_tryaccept_fail
23 assert_equal nil, @srv.kgio_tryaccept
26 def test_blocking_accept
28 pid = fork { sleep 1; a = client_connect; sleep }
30 elapsed = Time.now - t0
31 assert_kind_of Kgio::Socket, b
32 assert_equal @host, b.kgio_addr
33 Process.kill(:TERM, pid)
35 assert elapsed >= 1, "elapsed: #{elapsed}"
38 def test_blocking_accept_with_nonblock_socket
41 pid = fork { sleep 1; a = client_connect; sleep }
43 elapsed = Time.now - t0
44 assert_kind_of Kgio::Socket, b
45 assert_equal @host, b.kgio_addr
46 Process.kill(:TERM, pid)
48 assert elapsed >= 1, "elapsed: #{elapsed}"
51 pid = fork { sleep 6; a = client_connect; sleep }
53 elapsed = Time.now - t0
54 assert_kind_of Kgio::Socket, b
55 assert_equal @host, b.kgio_addr
56 Process.kill(:TERM, pid)
58 assert elapsed >= 6, "elapsed: #{elapsed}"
61 pid = fork { sleep 1; a = client_connect; sleep }
63 elapsed = Time.now - t0
64 assert_kind_of Kgio::Socket, b
65 assert_equal @host, b.kgio_addr
66 Process.kill(:TERM, pid)
68 assert elapsed >= 1, "elapsed: #{elapsed}"