diff options
| author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-27 13:10:25 +0000 |
|---|---|---|
| committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-27 13:10:25 +0000 |
| commit | ea0e2f7a1f154b5dfb768b2e206aca5ac890e46b (patch) | |
| tree | 7b694840c2bd245c835fb31d0c22a940200173b0 /test | |
| parent | 5cfa50dc6b92394ed439cda63596c114f8e62ff5 (diff) | |
| download | ruby-ea0e2f7a1f154b5dfb768b2e206aca5ac890e46b.tar.gz ruby-ea0e2f7a1f154b5dfb768b2e206aca5ac890e46b.tar.xz ruby-ea0e2f7a1f154b5dfb768b2e206aca5ac890e46b.zip | |
add a test.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@22665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
| -rw-r--r-- | test/socket/test_socket.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/socket/test_socket.rb b/test/socket/test_socket.rb index dc7a6e112..d6a70dd40 100644 --- a/test/socket/test_socket.rb +++ b/test/socket/test_socket.rb @@ -209,7 +209,40 @@ class TestSocket < Test::Unit::TestCase ensure servers.each {|s| s.close if !s.closed? } end + end + def test_accept_loop_multi_port + servers = [] + begin + servers = Socket.tcp_server_sockets(0) + port = servers[0].local_address.ip_port + servers2 = Socket.tcp_server_sockets(0) + servers.concat servers2 + port2 = servers2[0].local_address.ip_port + + Socket.tcp("localhost", port) {|s1| + Socket.accept_loop(servers) {|s2, client_ai| + begin + assert_equal(s1.local_address.ip_unpack, client_ai.ip_unpack) + ensure + s2.close + end + break + } + } + Socket.tcp("localhost", port2) {|s1| + Socket.accept_loop(servers) {|s2, client_ai| + begin + assert_equal(s1.local_address.ip_unpack, client_ai.ip_unpack) + ensure + s2.close + end + break + } + } + ensure + servers.each {|s| s.close if !s.closed? } + end end def test_udp_server |
