diff --git a/tests/test_basic.rb b/tests/test_basic.rb index 927fee0ce..d52d4d05a 100644 --- a/tests/test_basic.rb +++ b/tests/test_basic.rb @@ -269,4 +269,26 @@ def test_fork_safe read.close rescue nil write.close rescue nil end + + def test_error_handler_idempotent # issue 185 + errors = [] + ticks = [] + EM.error_handler do |e| + errors << e + end + + EM.run do + EM.next_tick do + ticks << :first + raise + end + EM.next_tick do + ticks << :second + end + EM.add_timer(0.001) { EM.stop } + end + + assert_equal 1, errors.size + assert_equal [:first, :second], ticks + end end