From fefd652d6cc5825bebbe164a360c4a06b1399dcb Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 10 Apr 2011 07:27:40 +0000 Subject: add test for cross thread close Ruby 1.9.3dev has better support for it --- test/test_cross_thread_close.rb | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 test/test_cross_thread_close.rb diff --git a/test/test_cross_thread_close.rb b/test/test_cross_thread_close.rb new file mode 100644 index 0000000..d1115d4 --- /dev/null +++ b/test/test_cross_thread_close.rb @@ -0,0 +1,26 @@ +require 'test/unit' +$-w = true +require 'kgio' + +class TestCrossThreadClose < Test::Unit::TestCase + + def test_cross_thread_close + host = ENV["TEST_HOST"] || '127.0.0.1' + srv = Kgio::TCPServer.new(host, 0) + thr = Thread.new do + begin + srv.kgio_accept + rescue => e + e + end + end + sleep(0.1) until thr.stop? + srv.close + unless defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" && + RUBY_VERSION == "1.9.3" + thr.run rescue nil + end + thr.join + assert_kind_of IOError, thr.value + end +end -- cgit v1.2.3-24-ge0c7