Sha256: ed390409f54c38eb9a9cc90834e157ea6c401f1589c88a8078c1289241df8762

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

require File.dirname(__FILE__) + '/../lib/rev'
def dbg
 require 'rubygems'
 require 'ruby-debug'
 debugger
end
Thread.abort_on_exception=true

require 'socket'

describe Rev::TCPSocket do
      HOST = '127.0.0.1'
      PORT = 4321
  before :each do
      @server = Rev::TCPServer.new(HOST, PORT) do |c|
         c.on_connect { puts "#{remote_addr}:#{remote_port} connected" }
         c.on_close   { puts "#{remote_addr}:#{remote_port} disconnected" }
         #c.on_read    { |data| write data }
      end

  end

  after :each do
	@server.close
  end

  def sleep_until(seconds = 1, interval = 0.1)
   raise unless block_given?
   start_time=Time.now
   sleep interval until ((Time.now - start_time) > seconds) or yield
  end

  it "should stop" do
	loop = Rev::Loop.default
	stopped = false;
  	@server.attach(loop)
  	Thread.new {
                loop.run
		stopped = true
        }
	sleep 0
        stopped.should == false
        loop.stop
        sleep_until(3) { stopped == true }
        stopped.should == true
   end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cool.io-1.0.0 spec/possible_tests/schedules_other_threads.rb
cool.io-0.9.0 spec/possible_tests/schedules_other_threads.rb