metasploit-framework/lib/rex/socket/tcp_server.rb.ut.rb

46 lines
1.2 KiB
Ruby

#!/usr/bin/env ruby
# -*- coding: binary -*-
$:.unshift(File.join(File.dirname(__FILE__), '..', '..'))
require 'test/unit'
require 'rex/socket/tcp_server'
class Rex::Socket::TcpServer::UnitTest < Test::Unit::TestCase
def test_tcp_server
serv_port = 65433
serv = Rex::Socket.create_tcp_server(
'LocalPort' => serv_port)
ccli = nil
begin
assert_kind_of(Rex::Socket::TcpServer, serv, "valid TcpServer")
assert_kind_of(Rex::IO::StreamServer, serv, "valid StreamServer")
# Connect to the server
assert_nothing_raised {
ccli = Rex::Socket.create_tcp(
'PeerHost' => '127.0.0.1',
'PeerPort' => serv_port)
}
assert_kind_of(Rex::Socket::Tcp, ccli, "valid client client Tcp")
# Accept the client connection
scli = serv.accept
assert_kind_of(Rex::Socket::Tcp, scli, "valid server client Tcp")
assert_equal(2, scli.put("Yo"), "scli: put Yo")
assert_equal("Yo", ccli.get(), "ccli: get Yo")
assert(scli.methods.include?('<<'), "no << operator")
assert(scli.methods.include?('>>'), "no >> operator")
assert(scli.methods.include?('has_read_data?'), "no has_read_data?")
ensure
ccli.close if (ccli)
serv.close
end
end
end