summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-socket/test/socket.rb
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-socket/test/socket.rb')
-rw-r--r--mrbgems/mruby-socket/test/socket.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/mrbgems/mruby-socket/test/socket.rb b/mrbgems/mruby-socket/test/socket.rb
new file mode 100644
index 000000000..517f5a00c
--- /dev/null
+++ b/mrbgems/mruby-socket/test/socket.rb
@@ -0,0 +1,34 @@
+assert('Socket.gethostname') do
+ assert_true(Socket.gethostname.is_a? String)
+end
+
+assert('Socket::getaddrinfo') do
+ ret = Socket.getaddrinfo("localhost", "domain", Socket::AF_INET, Socket::SOCK_DGRAM)
+ assert_true ret.size >= 1
+ a = ret[0]
+ assert_equal "AF_INET", a[0]
+ assert_equal 53, a[1]
+ # documents says it's a hostname but CRuby returns an address
+ #assert_equal "127.0.0.1", a[2]
+ assert_equal "127.0.0.1", a[3]
+ assert_equal Socket::AF_INET, a[4]
+ assert_equal Socket::SOCK_DGRAM, a[5]
+ assert_equal Socket::IPPROTO_UDP, a[6]
+end
+
+assert('Socket#recvfrom') do
+ begin
+ sstr = "abcdefg"
+ s = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
+ c = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
+ s.bind(Socket.sockaddr_in(0, "127.0.0.1"))
+ c.send sstr, 0, s.getsockname
+ rstr, ai = s.recvfrom sstr.size
+
+ assert_equal sstr, rstr
+ assert_true "127.0.0.1", ai.ip_address
+ ensure
+ s.close rescue nil
+ c.close rescue nil
+ end
+end