diff options
Diffstat (limited to 'ruby_1_8_5/test/socket')
-rw-r--r-- | ruby_1_8_5/test/socket/test_nonblock.rb | 179 | ||||
-rw-r--r-- | ruby_1_8_5/test/socket/test_socket.rb | 83 | ||||
-rw-r--r-- | ruby_1_8_5/test/socket/test_unix.rb | 141 |
3 files changed, 0 insertions, 403 deletions
diff --git a/ruby_1_8_5/test/socket/test_nonblock.rb b/ruby_1_8_5/test/socket/test_nonblock.rb deleted file mode 100644 index ed6487b49f..0000000000 --- a/ruby_1_8_5/test/socket/test_nonblock.rb +++ /dev/null @@ -1,179 +0,0 @@ -begin - require "socket" -rescue LoadError -end - -require "test/unit" -require "tempfile" -require "timeout" - -class TestNonblockSocket < Test::Unit::TestCase - def test_accept_nonblock - serv = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0) - serv.bind(Socket.sockaddr_in(0, "127.0.0.1")) - serv.listen(5) - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { serv.accept_nonblock } - c = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0) - c.connect(serv.getsockname) - s, sockaddr = serv.accept_nonblock - assert_equal(Socket.unpack_sockaddr_in(c.getsockname), Socket.unpack_sockaddr_in(sockaddr)) - ensure - serv.close if serv - c.close if c - s.close if s - end - - def test_connect_nonblock - serv = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0) - serv.bind(Socket.sockaddr_in(0, "127.0.0.1")) - serv.listen(5) - c = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0) - servaddr = serv.getsockname - begin - c.connect_nonblock(servaddr) - rescue Errno::EINPROGRESS - IO.select nil, [c] - assert_nothing_raised { - begin - c.connect_nonblock(servaddr) - rescue Errno::EISCONN - end - } - end - s, sockaddr = serv.accept - assert_equal(Socket.unpack_sockaddr_in(c.getsockname), Socket.unpack_sockaddr_in(sockaddr)) - ensure - serv.close if serv - c.close if c - s.close if s - end - - def test_udp_recvfrom_nonblock - u1 = UDPSocket.new - u2 = UDPSocket.new - u1.bind("127.0.0.1", 0) - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { u1.recvfrom_nonblock(100) } - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK, Errno::EINVAL) { u2.recvfrom_nonblock(100) } - u2.send("aaa", 0, u1.getsockname) - IO.select [u1] - mesg, inet_addr = u1.recvfrom_nonblock(100) - assert_equal(4, inet_addr.length) - assert_equal("aaa", mesg) - af, port, host, addr = inet_addr - u2_port, u2_addr = Socket.unpack_sockaddr_in(u2.getsockname) - assert_equal(u2_port, port) - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { u1.recvfrom_nonblock(100) } - u2.send("", 0, u1.getsockname) - assert_nothing_raised("cygwin 1.5.19 has a problem to send an empty UDP packet. [ruby-dev:28915]") { - timeout(1) { IO.select [u1] } - } - mesg, inet_addr = u1.recvfrom_nonblock(100) - assert_equal("", mesg) - ensure - u1.close if u1 - u2.close if u2 - end - - def test_udp_recv_nonblock - u1 = UDPSocket.new - u2 = UDPSocket.new - u1.bind("127.0.0.1", 0) - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { u1.recv_nonblock(100) } - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK, Errno::EINVAL) { u2.recv_nonblock(100) } - u2.send("aaa", 0, u1.getsockname) - IO.select [u1] - mesg = u1.recv_nonblock(100) - assert_equal("aaa", mesg) - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { u1.recv_nonblock(100) } - u2.send("", 0, u1.getsockname) - assert_nothing_raised("cygwin 1.5.19 has a problem to send an empty UDP packet. [ruby-dev:28915]") { - timeout(1) { IO.select [u1] } - } - mesg = u1.recv_nonblock(100) - assert_equal("", mesg) - ensure - u1.close if u1 - u2.close if u2 - end - - def test_socket_recvfrom_nonblock - s1 = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0) - s1.bind(Socket.sockaddr_in(0, "127.0.0.1")) - s2 = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0) - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { s1.recvfrom_nonblock(100) } - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK, Errno::EINVAL) { s2.recvfrom_nonblock(100) } - s2.send("aaa", 0, s1.getsockname) - IO.select [s1] - mesg, sockaddr = s1.recvfrom_nonblock(100) - assert_equal("aaa", mesg) - port, addr = Socket.unpack_sockaddr_in(sockaddr) - s2_port, s2_addr = Socket.unpack_sockaddr_in(s2.getsockname) - assert_equal(s2_port, port) - ensure - s1.close if s1 - s2.close if s2 - end - - def tcp_pair - serv = TCPServer.new("127.0.0.1", 0) - af, port, host, addr = serv.addr - c = TCPSocket.new(addr, port) - s = serv.accept - return c, s - ensure - serv.close if serv - end - - def test_tcp_recv_nonblock - c, s = tcp_pair - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { c.recv_nonblock(100) } - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { s.recv_nonblock(100) } - c.write("abc") - IO.select [s] - assert_equal("a", s.recv_nonblock(1)) - assert_equal("bc", s.recv_nonblock(100)) - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { s.recv_nonblock(100) } - ensure - c.close if c - s.close if s - end - - def test_read_nonblock - c, s = tcp_pair - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { c.read_nonblock(100) } - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { s.read_nonblock(100) } - c.write("abc") - IO.select [s] - assert_equal("a", s.read_nonblock(1)) - assert_equal("bc", s.read_nonblock(100)) - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { s.read_nonblock(100) } - ensure - c.close if c - s.close if s - end - -=begin - def test_write_nonblock - c, s = tcp_pair - str = "a" * 10000 - _, ws, _ = IO.select(nil, [c], nil) - assert_equal([c], ws) - ret = c.write_nonblock(str) - assert_operator(ret, :>, 0) - loop { - assert_raise(Errno::EAGAIN, Errno::EWOULDBLOCK) { - loop { - ret = c.write_nonblock(str) - assert_operator(ret, :>, 0) - } - } - _, ws, _ = IO.select(nil, [c], nil, 0) - break if !ws - } - ensure - c.close if c - s.close if s - end -=end - -end if defined?(Socket) diff --git a/ruby_1_8_5/test/socket/test_socket.rb b/ruby_1_8_5/test/socket/test_socket.rb deleted file mode 100644 index fc01467f16..0000000000 --- a/ruby_1_8_5/test/socket/test_socket.rb +++ /dev/null @@ -1,83 +0,0 @@ -begin - require "socket" - require "test/unit" -rescue LoadError -end - -class TestBasicSocket < Test::Unit::TestCase - def inet_stream - sock = Socket.new(Socket::AF_INET, Socket::SOCK_STREAM, 0) - yield sock - ensure - assert_raise(IOError) {sock.close} - end - - def test_getsockopt - inet_stream do |s| - n = s.getsockopt(Socket::SOL_SOCKET, Socket::SO_TYPE) - assert_equal([Socket::SOCK_STREAM].pack("i"), n) - n = s.getsockopt(Socket::SOL_SOCKET, Socket::SO_ERROR) - assert_equal([0].pack("i"), n) - val = Object.new - class << val; self end.__send__(:define_method, :to_int) { - s.close - Socket::SO_TYPE - } - assert_raise(IOError) { - n = s.getsockopt(Socket::SOL_SOCKET, val) - } - end - end - - def test_setsockopt # [ruby-dev:25039] - s = nil - linger = [0, 0].pack("ii") - - val = Object.new - class << val; self end.__send__(:define_method, :to_str) { - s.close - linger - } - inet_stream do |s| - assert_equal(0, s.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, linger)) - - assert_raise(IOError) { - s.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, val) - } - end - - val = Object.new - class << val; self end.__send__(:define_method, :to_int) { - s.close - Socket::SO_LINGER - } - inet_stream do |s| - assert_raise(IOError) { - s.setsockopt(Socket::SOL_SOCKET, val, linger) - } - end - end - - def test_listen - s = nil - log = Object.new - class << log; self end.__send__(:define_method, :to_int) { - s.close - 2 - } - inet_stream do |s| - assert_raise(IOError) { - s.listen(log) - } - end - end -end if defined?(Socket) - -class TestSocket < Test::Unit::TestCase - def test_unpack_sockaddr - sockaddr_in = Socket.sockaddr_in(80, "") - assert_raise(ArgumentError) { Socket.unpack_sockaddr_un(sockaddr_in) } - sockaddr_un = Socket.sockaddr_un("/tmp/s") - assert_raise(ArgumentError) { Socket.unpack_sockaddr_in(sockaddr_un) } - end -end if defined?(Socket) && Socket.respond_to?(:sockaddr_un) diff --git a/ruby_1_8_5/test/socket/test_unix.rb b/ruby_1_8_5/test/socket/test_unix.rb deleted file mode 100644 index 14ddd6a4b6..0000000000 --- a/ruby_1_8_5/test/socket/test_unix.rb +++ /dev/null @@ -1,141 +0,0 @@ -begin - require "socket" -rescue LoadError -end - -require "test/unit" -require "tempfile" - -class TestUNIXSocket < Test::Unit::TestCase - def test_fd_passing - r1, w = IO.pipe - s1, s2 = UNIXSocket.pair - begin - s1.send_io(nil) - rescue NotImplementedError - assert_raise(NotImplementedError) { s2.recv_io } - rescue TypeError - s1.send_io(r1) - r2 = s2.recv_io - assert_equal(r1.stat.ino, r2.stat.ino) - assert_not_equal(r1.fileno, r2.fileno) - w.syswrite "a" - assert_equal("a", r2.sysread(10)) - ensure - s1.close - s2.close - w.close - r1.close - r2.close if r2 && !r2.closed? - end - end - - def bound_unix_socket(klass) - tmpfile = Tempfile.new("testrubysock") - path = tmpfile.path - tmpfile.close(true) - yield klass.new(path), path - ensure - File.unlink path if path && File.socket?(path) - end - - def test_addr - bound_unix_socket(UNIXServer) {|serv, path| - c = UNIXSocket.new(path) - s = serv.accept - assert_equal(["AF_UNIX", path], c.peeraddr) - assert_equal(["AF_UNIX", ""], c.addr) - assert_equal(["AF_UNIX", ""], s.peeraddr) - assert_equal(["AF_UNIX", path], s.addr) - assert_equal(path, s.path) - assert_equal("", c.path) - } - end - - def test_noname_path - s1, s2 = UNIXSocket.pair - assert_equal("", s1.path) - assert_equal("", s2.path) - ensure - s1.close - s2.close - end - - def test_noname_addr - s1, s2 = UNIXSocket.pair - assert_equal(["AF_UNIX", ""], s1.addr) - assert_equal(["AF_UNIX", ""], s2.addr) - ensure - s1.close - s2.close - end - - def test_noname_peeraddr - s1, s2 = UNIXSocket.pair - assert_equal(["AF_UNIX", ""], s1.peeraddr) - assert_equal(["AF_UNIX", ""], s2.peeraddr) - ensure - s1.close - s2.close - end - - def test_noname_unpack_sockaddr_un - s1, s2 = UNIXSocket.pair - n = nil - assert_equal("", Socket.unpack_sockaddr_un(n)) if (n = s1.getsockname) != "" - assert_equal("", Socket.unpack_sockaddr_un(n)) if (n = s1.getsockname) != "" - assert_equal("", Socket.unpack_sockaddr_un(n)) if (n = s2.getsockname) != "" - assert_equal("", Socket.unpack_sockaddr_un(n)) if (n = s1.getpeername) != "" - assert_equal("", Socket.unpack_sockaddr_un(n)) if (n = s2.getpeername) != "" - ensure - s1.close - s2.close - end - - def test_noname_recvfrom - s1, s2 = UNIXSocket.pair - s2.write("a") - assert_equal(["a", ["AF_UNIX", ""]], s1.recvfrom(10)) - ensure - s1.close - s2.close - end - - def test_noname_recv_nonblock - s1, s2 = UNIXSocket.pair - s2.write("a") - IO.select [s1] - assert_equal("a", s1.recv_nonblock(10)) - ensure - s1.close - s2.close - end - - def test_too_long_path - assert_raise(ArgumentError) { Socket.sockaddr_un("a" * 300) } - assert_raise(ArgumentError) { UNIXServer.new("a" * 300) } - end - - def test_nul - assert_raise(ArgumentError) { Socket.sockaddr_un("a\0b") } - assert_raise(ArgumentError) { UNIXServer.new("a\0b") } - end - - def test_dgram_pair - s1, s2 = UNIXSocket.pair(Socket::SOCK_DGRAM) - assert_raise(Errno::EAGAIN) { s1.recv_nonblock(10) } - s2.send("", 0) - s2.send("haha", 0) - s2.send("", 0) - s2.send("", 0) - assert_equal("", s1.recv(10)) - assert_equal("haha", s1.recv(10)) - assert_equal("", s1.recv(10)) - assert_equal("", s1.recv(10)) - assert_raise(Errno::EAGAIN) { s1.recv_nonblock(10) } - ensure - s1.close if s1 - s2.close if s2 - end - -end if defined?(UNIXSocket) && /cygwin/ !~ RUBY_PLATFORM |