summaryrefslogtreecommitdiffhomepage
path: root/test/socket.rb
diff options
context:
space:
mode:
authorTomoyuki Sahara <[email protected]>2013-05-21 13:17:34 +0900
committerTomoyuki Sahara <[email protected]>2013-05-21 13:17:34 +0900
commit49e53bca5df530d0356852d6ce675b6d0cbf6933 (patch)
treeed72794e9b1f5cb281bc5295ad64dfbe4f1ae7eb /test/socket.rb
downloadmruby-49e53bca5df530d0356852d6ce675b6d0cbf6933.tar.gz
mruby-49e53bca5df530d0356852d6ce675b6d0cbf6933.zip
Socket library for mruby.
Diffstat (limited to 'test/socket.rb')
-rw-r--r--test/socket.rb139
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