diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/socket.rb | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/test/socket.rb b/test/socket.rb new file mode 100644 index 000000000..b7fd458c4 --- /dev/null +++ b/test/socket.rb @@ -0,0 +1,139 @@ +assert('Addrinfo') do + assert_equal(Class, Addrinfo.class) +end + +assert('super class of Addrinfo') do + assert_equal(Object, Addrinfo.superclass) +end + +assert('Addrinfo.getadrinfo') do + ary = Addrinfo.getaddrinfo("localhost", "domain", Socket::AF_INET, Socket::SOCK_STREAM) + assert_equal(ary.size, 1) + ai = ary[0] + assert_equal(ai.afamily, Socket::AF_INET) + assert_equal(ai.pfamily, Socket::PF_INET) + assert_equal(ai.socktype, Socket::SOCK_STREAM) + assert_equal(ai.ip_address, '127.0.0.1') + assert_equal(ai.ip_port, 53) +end + +assert('Addrinfo.foreach') do + # assume Addrinfo.getaddrinfo works well + b = [] + a = Addrinfo.foreach("localhost", "domain") { |ai| + assert_include([Socket::AF_INET, Socket::AF_INET6], ai.afamily) + if ai.afamily == Socket::AF_INET + assert_equal(ai.ip_address, '127.0.0.1') + else + assert_equal(ai.ip_address, '::1') + end + assert_equal(ai.ip_port, 53) + assert_include([Socket::SOCK_STREAM, Socket::SOCK_DGRAM], ai.socktype) + b << ai + } + assert_equal(a.size, b.size) +end + +assert('Addrinfo.ip') do + ai = Addrinfo.ip('127.0.0.1') + assert_equal('127.0.0.1', ai.ip_address) + assert_equal(Socket::AF_INET, ai.afamily) + assert_equal(0, ai.ip_port) + assert_equal(0, ai.socktype) + assert_equal(0, ai.protocol) +end + +assert('Addrinfo.tcp') do + ai = Addrinfo.tcp('127.0.0.1', 'smtp') + assert_equal('127.0.0.1', ai.ip_address) + assert_equal(Socket::AF_INET, ai.afamily) + assert_equal(25, ai.ip_port) + assert_equal(Socket::SOCK_STREAM, ai.socktype) + assert_equal(Socket::IPPROTO_TCP, ai.protocol) +end + +assert('Addrinfo.udp') do + ai = Addrinfo.udp('127.0.0.1', 'domain') + assert_equal('127.0.0.1', ai.ip_address) + assert_equal(Socket::AF_INET, ai.afamily) + assert_equal(53, ai.ip_port) + assert_equal(Socket::SOCK_DGRAM, ai.socktype) + assert_equal(Socket::IPPROTO_UDP, ai.protocol) +end + +assert('Addrinfo.unix') do + a1 = Addrinfo.unix('/tmp/sock') + assert_true(a1.unix?) + assert_equal('/tmp/sock', a1.unix_path) + assert_equal(Socket::SOCK_STREAM, a1.socktype) + a2 = Addrinfo.unix('/tmp/sock', Socket::SOCK_DGRAM) + assert_equal(Socket::SOCK_DGRAM, a2.socktype) +end + +assert('Addrinfo#afamily') do + ai4 = Addrinfo.new(Socket.sockaddr_in(1, '127.0.0.1')) + ai6 = Addrinfo.new(Socket.sockaddr_in(1, '::1')) + aiu = Addrinfo.new(Socket.sockaddr_un('/tmp/sock')) + assert_equal(Socket::AF_INET, ai4.afamily) + assert_equal(Socket::AF_INET6, ai6.afamily) + assert_equal(Socket::AF_UNIX, aiu.afamily) +end + +# assert('Addrinfo#canonname') do + +# #getnameinfo +# assert('Addrinfo#inspect') do +# assert('Addrinfo#inspect_socket') do +# assert('Addrinfo#ip?') do +# assert('Addrinfo#ip_address') do +# assert('Addrinfo#ip_port') do +# assert('Addrinfo#ip_unpack') do +# assert('Addrinfo#ipv4?') do +# assert('Addrinfo#ipv6?') do +# assert('Addrinfo#pfamily') do +# assert('Addrinfo#protocol') do +# assert('Addrinfo#socktype') do +# assert('Addrinfo#to_sockaddr') do +# assert('Addrinfo#unix?') do +# #unix_path + + +assert('BasicSocket') do + assert_equal(Class, BasicSocket.class) +end + +assert('super class of BasicSocket') do + assert_equal(IO, BasicSocket.superclass) +end + +assert('BasicSocket.do_not_reverse_lookup') do + assert_equal(BasicSocket.do_not_reverse_lookup, true) +end + +assert('BasicSocket.do_not_reverse_lookup=') do + BasicSocket.do_not_reverse_lookup = false + assert_equal(BasicSocket.do_not_reverse_lookup, false) + BasicSocket.do_not_reverse_lookup = true +end + +assert('UDPSocket.new') do + s = UDPSocket.new + assert_true(s.is_a? UDPSocket) + s.close + s = UDPSocket.new(Socket::AF_INET6) + assert_true(s.is_a? UDPSocket) + s.close + true +end + +#assert('UDPSocket#connect') do +#assert('UDPSocket#send') do +#assert('UDPSocket#recv') do + +#assert('UDPSocket#bind') do +#assert('UDPSocket#recvfrom_nonblock') do + +#assert('TCPSocket.gethostbyname') do +#assert('TCPSocket.new') do +#assert('TCPSocket#close') do +#assert('TCPSocket#write') do |
