[前][次][番号順一覧][スレッド一覧]

ruby-changes:10455

From: akr <ko1@a...>
Date: Tue, 3 Feb 2009 15:27:12 +0900 (JST)
Subject: [ruby-changes:10455] Ruby:r22005 (trunk): add tests.

akr	2009-02-03 15:27:07 +0900 (Tue, 03 Feb 2009)

  New Revision: 22005

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=22005

  Log:
    add tests.

  Modified files:
    trunk/test/socket/test_socket.rb

Index: test/socket/test_socket.rb
===================================================================
--- test/socket/test_socket.rb	(revision 22004)
+++ test/socket/test_socket.rb	(revision 22005)
@@ -1,5 +1,6 @@
 begin
   require "socket"
+  require "tmpdir"
   require "test/unit"
 rescue LoadError
 end
@@ -71,4 +72,77 @@
       assert(ai.ip?)
     }
   end
+
+  def test_tcp
+    TCPServer.open(0) {|serv|
+      port, addr = Socket.unpack_sockaddr_in(serv.getsockname)
+      Socket.tcp(addr, port) {|s1|
+        s2 = serv.accept
+        begin
+          assert_equal(s2.remote_address.ip_unpack, s1.local_address.ip_unpack)
+        ensure
+          s2.close
+        end
+      }
+    }
+  end
+
+  def random_port
+    # IANA suggests dynamic port for 49152 to 65535
+    # http://www.iana.org/assignments/port-numbers
+    49152 + rand(65535-49152+1)
+  end
+
+  def test_tcp_server_sockets
+    port = random_port
+    begin
+      sockets = Socket.tcp_server_sockets(port)
+    rescue Errno::EADDRINUSE
+      return # not test failure
+    end
+    begin
+      sockets.each {|s|
+        assert_equal(port, s.local_address.ip_port)
+      }
+    ensure
+      sockets.each {|s|
+        s.close
+      }
+    end
+  end
+
+  if defined? UNIXSocket
+    def test_unix
+      Dir.mktmpdir {|tmpdir|
+        path = "#{tmpdir}/sock"
+        UNIXServer.open(path) {|serv|
+          Socket.unix(path) {|s1|
+            s2 = serv.accept
+            begin
+              assert_equal(s2.remote_address.unix_path, s1.local_address.unix_path)
+            ensure
+              s2.close
+            end
+          }
+        }
+      }
+    end
+
+    def test_unix_server_socket
+      Dir.mktmpdir {|tmpdir|
+        path = "#{tmpdir}/sock"
+        2.times {
+          serv = Socket.unix_server_socket(path)
+          begin
+            assert_kind_of(Socket, serv)
+            assert(File.socket?(path))
+            assert_equal(path, serv.local_address.unix_path)
+          ensure
+            serv.close
+          end
+        }
+      }
+    end
+  end
+
 end if defined?(Socket)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]