Sha256: a198e4532883911a7f384dec7be660f0f1134f3b962b90591b0586ce9d41770a

Contents?: true

Size: 1.2 KB

Versions: 2

Compression:

Stored size: 1.2 KB

Contents

#!/usr/bin/env ruby
require 'test/unit'
require 'rubygems'; require 'require_relative'

# Unit test for io/tcpserver.rb
require_relative '../../io/tcpfns'
require_relative '../../io/tcpserver'

class TestTCPDbgServer < Test::Unit::TestCase

  include Trepanning::TCPPacking

  def test_basic
    server = Trepan::TCPDbgServer.new
    begin
      server.open({ :open => false,
                    :port => 1027,
                    :host => '127.0.0.1'
                  })
    rescue Errno::EADDRINUSE
      puts "Address already in use. Skipping test."
      return
    end
    threads = []
    msgs = %w(one two three)
    Thread.new do
      msgs.each do |msg|
        begin
          line = server.read_msg.chomp
          assert_equal(msg, line)
        rescue EOFError
          puts 'Got EOF'
          break
        end
      end
    end
    threads << Thread.new do
      t = TCPSocket.new('127.0.0.1', 1027)
      msgs.each do |msg|
        begin
          t.puts(pack_msg(msg))
        rescue EOFError
          puts "Got EOF"
          break
        rescue Exception => e
          puts "Got #{e}"
          break
        end
      end
      t.close
    end
    threads.each {|t| t.join }
    server.close
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rbx-trepanning-0.2.1-universal-rubinius-2.0 test/unit/test-io-tcpserver.rb
rbx-trepanning-0.2.1-universal-rubinius-1.2 test/unit/test-io-tcpserver.rb