forked from eventmachine/eventmachine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_connection_count.rb
54 lines (47 loc) · 1.24 KB
/
test_connection_count.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
require 'em_test_helper'
class TestConnectionCount < Test::Unit::TestCase
def test_idle_connection_count
EM.run {
$count = EM.connection_count
EM.stop_event_loop
}
assert_equal(0, $count)
end
module Client
def connection_completed
$client_conns += 1
EM.stop if $client_conns == 3
end
end
def test_with_some_connections
EM.run {
$client_conns = 0
$initial_conns = EM.connection_count
EM.start_server("127.0.0.1", 9999)
$server_conns = EM.connection_count
3.times { EM.connect("127.0.0.1", 9999, Client) }
}
assert_equal(0, $initial_conns)
assert_equal(1, $server_conns)
assert_equal(4, $client_conns + $server_conns)
end
module DoubleCloseClient
def unbind
close_connection
$num_close_scheduled_1 = EM.num_close_scheduled
EM.next_tick do
$num_close_scheduled_2 = EM.num_close_scheduled
EM.stop
end
end
end
def test_num_close_scheduled
omit_if(jruby?)
EM.run {
assert_equal(0, EM.num_close_scheduled)
EM.connect("127.0.0.1", 9999, DoubleCloseClient) # nothing listening on 9999
}
assert_equal(1, $num_close_scheduled_1)
assert_equal(0, $num_close_scheduled_2)
end
end