45 lines
1.1 KiB
Ruby
45 lines
1.1 KiB
Ruby
|
#!/usr/bin/ruby
|
||
|
|
||
|
$:.unshift(File.join('..', '..', File.dirname(__FILE__)))
|
||
|
|
||
|
require 'test/unit'
|
||
|
require 'Rex/Socket/Udp'
|
||
|
|
||
|
class Rex::Socket::Udp::UnitTest < Test::Unit::TestCase
|
||
|
|
||
|
def test_udp
|
||
|
serv_port = 65432
|
||
|
serv = Rex::Socket::Udp.create(
|
||
|
'LocalHost' => '127.0.0.1',
|
||
|
'LocalPort' => serv_port)
|
||
|
|
||
|
begin
|
||
|
assert_kind_of(Rex::Socket::Udp, serv, "valid Udp server instance")
|
||
|
|
||
|
# Test connected socket
|
||
|
concli = Rex::Socket::Udp.create(
|
||
|
'PeerHost' => '127.0.0.1',
|
||
|
'PeerPort' => serv_port)
|
||
|
|
||
|
assert_equal('127.0.0.1', concli.peerhost, "matching peerhost")
|
||
|
assert_equal(serv_port, concli.peerport, "matching peerport")
|
||
|
assert_equal(2, concli.write('yo'), "write succeeded")
|
||
|
|
||
|
data, host, port = serv.recvfrom
|
||
|
|
||
|
assert_equal('yo', data, "read data match")
|
||
|
assert_equal('127.0.0.1', host, "matching client host")
|
||
|
|
||
|
# Test non-connected socket
|
||
|
concli = Rex::Socket::Udp.create
|
||
|
|
||
|
assert_equal(3, concli.sendto('bob', '127.0.0.1', serv_port), "sendto")
|
||
|
data, host, port = serv.recvfrom
|
||
|
assert_equal('bob', data, "read data match")
|
||
|
ensure
|
||
|
serv.close
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|