PageRenderTime 42ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/1.8/library/socket/getaddrinfo_spec.rb

https://github.com/chad/rubyspec
Ruby | 46 lines | 37 code | 5 blank | 4 comment | 2 complexity | 0f169e8d77b86a96075690aa7debd1d8 MD5 | raw file
  1. require File.dirname(__FILE__) + '/../../spec_helper'
  2. require 'socket'
  3. describe "Socket#getaddrinfo" do
  4. it "gets the address information" do
  5. expected = []
  6. host = Socket.getaddrinfo("127.0.0.1", nil)[0][2]
  7. # The check for AP_INET6's class is needed because ipaddr.rb adds
  8. # fake AP_INET6 even in case when IPv6 is not really supported.
  9. # Without such check, this test might fail when ipaddr was required
  10. # by some other specs.
  11. if (Socket.constants.include? 'AF_INET6') &&
  12. (Socket::AF_INET6.class != Object) then
  13. expected.concat [
  14. ['AF_INET6', 80, host, '::1', Socket::AF_INET6,
  15. Socket::SOCK_DGRAM, Socket::IPPROTO_UDP],
  16. ['AF_INET6', 80, host, '::1', Socket::AF_INET6,
  17. Socket::SOCK_STREAM, Socket::IPPROTO_TCP],
  18. ['AF_INET6', 80, host, '::1', Socket::AF_INET6,
  19. Socket::SOCK_DGRAM, Socket::IPPROTO_UDP],
  20. ['AF_INET6', 80, host, '::1', Socket::AF_INET6,
  21. Socket::SOCK_STREAM, Socket::IPPROTO_TCP],
  22. ['AF_INET6', 80, host, 'fe80::1%lo0', Socket::AF_INET6,
  23. Socket::SOCK_DGRAM, Socket::IPPROTO_UDP],
  24. ['AF_INET6', 80, host, 'fe80::1%lo0', Socket::AF_INET6,
  25. Socket::SOCK_STREAM, Socket::IPPROTO_TCP],
  26. ['AF_INET6', 80, host, 'fe80::1%lo0', Socket::AF_INET6,
  27. Socket::SOCK_DGRAM, Socket::IPPROTO_UDP],
  28. ['AF_INET6', 80, host, 'fe80::1%lo0', Socket::AF_INET6,
  29. Socket::SOCK_STREAM, Socket::IPPROTO_TCP],
  30. ]
  31. end
  32. expected.concat [
  33. ['AF_INET', 80, host, '127.0.0.1', Socket::AF_INET,
  34. Socket::SOCK_DGRAM, Socket::IPPROTO_UDP],
  35. ['AF_INET', 80, host, '127.0.0.1', Socket::AF_INET,
  36. Socket::SOCK_STREAM, Socket::IPPROTO_TCP],
  37. ]
  38. addrinfo = Socket.getaddrinfo host, 'http'
  39. addrinfo.each { |a| expected.should include(a) }
  40. end
  41. end