Files
metasploit-gs/lib/rex/socket.rb.ut.rb
T

86 lines
2.8 KiB
Ruby
Raw Normal View History

2005-12-17 06:46:23 +00:00
#!/usr/bin/env ruby
2005-06-03 04:51:51 +00:00
2005-06-09 06:18:27 +00:00
$:.unshift(File.join(File.dirname(__FILE__), '..'))
2005-06-03 04:51:51 +00:00
require 'test/unit'
2005-07-09 21:18:49 +00:00
require 'rex/socket'
require 'rex/socket/tcp'
2005-06-03 04:51:51 +00:00
class Rex::Socket::UnitTest < Test::Unit::TestCase
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
2005-06-03 04:51:51 +00:00
def test_create
port = 64442
serv = TCPServer.new('127.0.0.1', port)
2005-06-03 04:51:51 +00:00
sock = nil
assert_nothing_raised {
sock = Rex::Socket.create(
'PeerHost' => '127.0.0.1',
'PeerPort' => port,
2005-06-03 04:51:51 +00:00
'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)
2005-06-03 04:51:51 +00:00
}
assert_kind_of(Rex::Socket::Tcp, sock, "tcp socket factory creation")
serv.close
end
def test_to_sockaddr
assert_equal("\x00" * 16, Rex::Socket.to_sockaddr(nil, 0, 0), "null sockaddr")
2005-12-13 06:08:40 +00:00
assert_equal([2].pack('s') + "\x00\x16" + "\x00" * 12, Rex::Socket.to_sockaddr(nil, 22), "default addr, port 22 sockaddr")
assert_equal([2].pack('s') + "\x00\x16\x01\x02\x03\x04" + "\x00" * 8, Rex::Socket.to_sockaddr("1.2.3.4", 22), "1.2.3.4 addr, port 22 sockaddr")
2005-06-03 04:51:51 +00:00
end
2005-06-04 06:19:42 +00:00
def test_from_sockaddr
af, host, port = Rex::Socket.from_sockaddr("\x00" * 16)
assert_equal(0, af, "zero af")
assert_equal('0.0.0.0', host, "zero host")
assert_equal(0, port, "zero port")
2005-12-13 06:08:40 +00:00
af, host, port = Rex::Socket.from_sockaddr([2].pack('s') + "\x00\x16" + "\x00" * 12)
2005-06-04 06:19:42 +00:00
assert_equal(2, af, "af = 2")
assert_equal('0.0.0.0', host, "zero host")
assert_equal(22, port, "port = 22")
2005-12-13 06:08:40 +00:00
af, host, port = Rex::Socket.from_sockaddr([2].pack('s') + "\x00\x16\x01\x02\x03\x04" + "\x00" * 8)
2005-06-04 06:19:42 +00:00
assert_equal(2, af, "af = 2")
assert_equal('1.2.3.4', host, "zero host")
assert_equal(22, port, "port = 22")
end
2005-07-08 14:53:12 +00:00
def test_resolv_nbo
assert_equal("\x04\x03\x02\x01", Rex::Socket.resolv_nbo("4.3.2.1"))
end
2005-09-30 05:43:06 +00:00
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
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
2008-10-19 21:03:39 +00:00
end