summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/test/socket
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_6/test/socket')
-rw-r--r--ruby_1_8_6/test/socket/test_nonblock.rb179
-rw-r--r--ruby_1_8_6/test/socket/test_socket.rb83
-rw-r--r--ruby_1_8_6/test/socket/test_unix.rb141
3 files changed, 0 insertions, 403 deletions
diff --git a/ruby_1_8_6/test/socket/test_nonblock.rb b/ruby_1_8_6/test/socket/test_nonblock.rb
deleted file mode 100644
index ed6487b49f..0000000000
--- a/ruby_1_8_6/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_6/test/socket/test_socket.rb b/ruby_1_8_6/test/socket/test_socket.rb
deleted file mode 100644
index fc01467f16..0000000000
--- a/ruby_1_8_6/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_6/test/socket/test_unix.rb b/ruby_1_8_6/test/socket/test_unix.rb
deleted file mode 100644
index 14ddd6a4b6..0000000000
--- a/ruby_1_8_6/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