PageRenderTime 48ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/rex/socket/tcp_server.rb.ut.rb

https://bitbucket.org/technopunk2099/metasploit-framework
Ruby | 45 lines | 31 code | 10 blank | 4 comment | 1 complexity | 2b81ebc667aa152e90cf1a17ba722063 MD5 | raw file
Possible License(s): BSD-3-Clause, Apache-2.0, LGPL-2.1, GPL-2.0, MIT
  1. #!/usr/bin/env ruby
  2. # -*- coding: binary -*-
  3. $:.unshift(File.join(File.dirname(__FILE__), '..', '..'))
  4. require 'test/unit'
  5. require 'rex/socket/tcp_server'
  6. class Rex::Socket::TcpServer::UnitTest < Test::Unit::TestCase
  7. def test_tcp_server
  8. serv_port = 65433
  9. serv = Rex::Socket.create_tcp_server(
  10. 'LocalPort' => serv_port)
  11. ccli = nil
  12. begin
  13. assert_kind_of(Rex::Socket::TcpServer, serv, "valid TcpServer")
  14. assert_kind_of(Rex::IO::StreamServer, serv, "valid StreamServer")
  15. # Connect to the server
  16. assert_nothing_raised {
  17. ccli = Rex::Socket.create_tcp(
  18. 'PeerHost' => '127.0.0.1',
  19. 'PeerPort' => serv_port)
  20. }
  21. assert_kind_of(Rex::Socket::Tcp, ccli, "valid client client Tcp")
  22. # Accept the client connection
  23. scli = serv.accept
  24. assert_kind_of(Rex::Socket::Tcp, scli, "valid server client Tcp")
  25. assert_equal(2, scli.put("Yo"), "scli: put Yo")
  26. assert_equal("Yo", ccli.get(), "ccli: get Yo")
  27. assert(scli.methods.include?('<<'), "no << operator")
  28. assert(scli.methods.include?('>>'), "no >> operator")
  29. assert(scli.methods.include?('has_read_data?'), "no has_read_data?")
  30. ensure
  31. ccli.close if (ccli)
  32. serv.close
  33. end
  34. end
  35. end