1 | unless SocketTest.win?
|
---|
2 |
|
---|
3 | assert('Socket.gethostname') do
|
---|
4 | assert_true(Socket.gethostname.is_a? String)
|
---|
5 | end
|
---|
6 |
|
---|
7 | assert('Socket::getaddrinfo') do
|
---|
8 | ret = Socket.getaddrinfo("localhost", 53, Socket::AF_INET, Socket::SOCK_DGRAM)
|
---|
9 | assert_true ret.size >= 1
|
---|
10 | a = ret[0]
|
---|
11 | assert_equal "AF_INET", a[0]
|
---|
12 | assert_equal 53, a[1]
|
---|
13 | # documents says it's a hostname but CRuby returns an address
|
---|
14 | #assert_equal "127.0.0.1", a[2]
|
---|
15 | assert_equal "127.0.0.1", a[3]
|
---|
16 | assert_equal Socket::AF_INET, a[4]
|
---|
17 | assert_equal Socket::SOCK_DGRAM, a[5]
|
---|
18 | assert_equal Socket::IPPROTO_UDP, a[6] unless SocketTest.cygwin?
|
---|
19 | end
|
---|
20 |
|
---|
21 | assert('Socket#recvfrom') do
|
---|
22 | begin
|
---|
23 | sstr = "abcdefg"
|
---|
24 | s = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
|
---|
25 | c = Socket.new(Socket::AF_INET, Socket::SOCK_DGRAM, 0)
|
---|
26 | s.bind(Socket.sockaddr_in(0, "127.0.0.1"))
|
---|
27 | c.send sstr, 0, s.getsockname
|
---|
28 | rstr, ai = s.recvfrom sstr.size
|
---|
29 |
|
---|
30 | assert_equal sstr, rstr
|
---|
31 | assert_equal "127.0.0.1", ai.ip_address
|
---|
32 | ensure
|
---|
33 | s.close rescue nil
|
---|
34 | c.close rescue nil
|
---|
35 | end
|
---|
36 | end
|
---|
37 |
|
---|
38 | end # win?
|
---|