Class: Rex::Socket::UnitTest
- Inherits:
-
Test::Unit::TestCase
- Object
- Test::Unit::TestCase
- Rex::Socket::UnitTest
- Defined in:
- lib/rex/socket.rb.ut.rb
Instance Method Summary collapse
- #test_bit2netmask ⇒ Object
- #test_create ⇒ Object
- #test_from_sockaddr ⇒ Object
- #test_ip ⇒ Object
- #test_is_internal ⇒ Object
- #test_net2bitmask ⇒ Object
- #test_resolv_nbo ⇒ Object
- #test_to_sockaddr ⇒ Object
Instance Method Details
#test_bit2netmask ⇒ Object
88 89 90 91 92 93 94 |
# File 'lib/rex/socket.rb.ut.rb', line 88 def test_bit2netmask assert_equal("255.255.255.255", Rex::Socket.bit2netmask(32)) assert_equal("255.255.255.254", Rex::Socket.bit2netmask(31)) assert_equal("255.255.255.240", Rex::Socket.bit2netmask(28)) assert_equal("255.255.255.0", Rex::Socket.bit2netmask(24)) assert_equal("255.255.0.0", Rex::Socket.bit2netmask(16)) end |
#test_create ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/rex/socket.rb.ut.rb', line 20 def test_create port = 64442 serv = TCPServer.new('127.0.0.1', port) sock = nil assert_nothing_raised { sock = Rex::Socket.create( 'PeerHost' => '127.0.0.1', 'PeerPort' => port, 'Proto' => 'tcp') } assert_kind_of(Rex::Socket::Tcp, sock, "socket factory creation") sock = nil assert_nothing_raised { sock = Rex::Socket.create_tcp( 'PeerHost' => '127.0.0.1', 'PeerPort' => port) } assert_kind_of(Rex::Socket::Tcp, sock, "tcp socket factory creation") serv.close end |
#test_from_sockaddr ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/rex/socket.rb.ut.rb', line 59 def test_from_sockaddr # 1.9.1 raises ArgumentError if we don't have an af == AF_INET or AF_INET6 af, host, port = Rex::Socket.from_sockaddr(([2, 0] + [0]*12).pack('snC*')) assert_equal(2, af, "af = 2") assert_equal('0.0.0.0', host, "zero host") assert_equal(0, port, "zero port") af, host, port = Rex::Socket.from_sockaddr(([2, 22]+[0]*12).pack('snC*')) assert_equal(2, af, "af = 2") assert_equal(22, port, "port = 22") assert_equal('0.0.0.0', host, "zero host") af, host, port = Rex::Socket.from_sockaddr(([2, 22, 1, 2, 3, 4] + [0]*8).pack('snC*') ) assert_equal(2, af, "af = 2") assert_equal('1.2.3.4', host, "host = '1.2.3.4'") assert_equal(22, port, "port = 22") end |
#test_ip ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/rex/socket.rb.ut.rb', line 11 def test_ip assert_equal(true,Rex::Socket.dotted_ip?('0.0.0.0'), 'valid IP min') assert_equal(true,Rex::Socket.dotted_ip?('255.255.255.255'), 'valid IP max') assert_equal(false,Rex::Socket.dotted_ip?('0.0.0.0.0'), 'too many sections') assert_equal(false,Rex::Socket.dotted_ip?('0..0.0.0'), 'too many dots') assert_equal(false,Rex::Socket.dotted_ip?('00.0.0'), 'not enough dots') assert_equal(false,Rex::Socket.dotted_ip?('256.256.256.256'), 'numbers too big') end |
#test_is_internal ⇒ Object
96 97 98 99 100 101 102 103 104 105 |
# File 'lib/rex/socket.rb.ut.rb', line 96 def test_is_internal assert( ! Rex::Socket.is_internal?("1.2.3.4")) assert( ! Rex::Socket.is_internal?("172.15.3.4")) assert( ! Rex::Socket.is_internal?("172.32.3.4")) assert(Rex::Socket.is_internal?("10.2.3.4")) assert(Rex::Socket.is_internal?("192.168.3.4")) 16.upto(31) do |octet| assert(Rex::Socket.is_internal?("172.#{octet}.3.4")) end end |
#test_net2bitmask ⇒ Object
81 82 83 84 85 86 |
# File 'lib/rex/socket.rb.ut.rb', line 81 def test_net2bitmask assert_equal(32, Rex::Socket.net2bitmask('255.255.255.255')) assert_equal(28, Rex::Socket.net2bitmask('255.255.255.240')) assert_equal(24, Rex::Socket.net2bitmask('255.255.255.0')) assert_equal(16, Rex::Socket.net2bitmask('255.255.0.0')) end |
#test_resolv_nbo ⇒ Object
77 78 79 |
# File 'lib/rex/socket.rb.ut.rb', line 77 def test_resolv_nbo assert_equal("\x04\x03\x02\x01", Rex::Socket.resolv_nbo("4.3.2.1")) end |
#test_to_sockaddr ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/rex/socket.rb.ut.rb', line 44 def test_to_sockaddr assert_equal(([2] + [0]*14).pack("sC*"), Rex::Socket.to_sockaddr(0, 0), "null sockaddr") =begin # This is platform dependent, pain to test if (Rex::Socket.support_ipv6?) # Use the constant for AF_INET6 since it is different per platform # (10 on linux and 28 on BSD) inaddr_any_sockaddr = ([::Socket::AF_INET6, 22] + [0]*24).pack('sSC*') else inaddr_any_sockaddr = ([2, 22] + [0]*12).pack('snC*') end =end assert_equal(([2, 0x16, 1, 2, 3, 4] + [0]*8).pack('snC*'), Rex::Socket.to_sockaddr("1.2.3.4", 22), "1.2.3.4 addr, port 22 sockaddr") end |