45 lines
1.1 KiB
Ruby
45 lines
1.1 KiB
Ruby
#!/usr/bin/env 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
|