aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_timeout.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-10 13:05:53 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-10 13:05:53 +0000
commitc15d95708f1fb5628f3eef5152e0828328b1cd6c (patch)
treec03cca1e3b71be938e56cdf824b7d3a7fac040c1 /test/test_timeout.rb
parent7f32234e3e4c46df37983df7f21e8944e07a5e4a (diff)
downloadruby-c15d95708f1fb5628f3eef5152e0828328b1cd6c.tar.gz
timeout.rb: removed and use Timeout::Error
* lib/timeout.rb (ExitException): removed internal exception class and use Timeout::Error instead, as using throw/catch to isolate each timeouts now. [ruby-dev:49179] [Bug #11344] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/test_timeout.rb')
-rw-r--r--test/test_timeout.rb23
1 files changed, 20 insertions, 3 deletions
diff --git a/test/test_timeout.rb b/test/test_timeout.rb
index e71a09f22c..e4eba7f902 100644
--- a/test/test_timeout.rb
+++ b/test/test_timeout.rb
@@ -63,9 +63,9 @@ class TestTimeout < Test::Unit::TestCase
end
def test_exit_exception
- assert_raise_with_message(Timeout::ExitException, "boon") do
- Timeout.timeout(10, Timeout::ExitException) do
- raise Timeout::ExitException, "boon"
+ assert_raise_with_message(Timeout::Error, "boon") do
+ Timeout.timeout(10, Timeout::Error) do
+ raise Timeout::Error, "boon"
end
end
end
@@ -80,4 +80,21 @@ class TestTimeout < Test::Unit::TestCase
Timeout.timeout(0.01) {e.next}
end
end
+
+ def test_handle_interrupt
+ bug11344 = '[ruby-dev:49179] [Bug #11344]'
+ ok = false
+ assert_raise(Timeout::Error) {
+ Thread.handle_interrupt(Timeout::Error => :never) {
+ Timeout.timeout(0.01) {
+ sleep 0.2
+ ok = true
+ Thread.handle_interrupt(Timeout::Error => :on_blocking) {
+ sleep 0.2
+ }
+ }
+ }
+ }
+ assert(ok, bug11344)
+ end
end