rf-web/vendor/bundle/gems/eventmachine-1.2.7/tests/test_exc.rb

44 lines
979 B
Ruby
Raw Normal View History

2019-10-21 08:18:17 +00:00
require 'em_test_helper'
class TestSomeExceptions < Test::Unit::TestCase
class DoomedConnectionError < StandardError
end
class DoomedConnection < EventMachine::Connection
def unbind
raise DoomedConnectionError
end
end
# Read the commentary in EM#run.
# This test exercises the ensure block in #run that makes sure
# EM#release_machine gets called even if an exception is
# thrown within the user code. Without the ensured call to release_machine,
# the second call to EM#run will fail with a C++ exception
# because the machine wasn't cleaned up properly.
def test_a
assert_raises(RuntimeError) {
EM.run {
raise "some exception"
}
}
end
def test_b
assert_raises(RuntimeError) {
EM.run {
raise "some exception"
}
}
end
def test_exception_on_unbind
assert_raises(DoomedConnectionError) {
EM.run {
EM.connect("localhost", 8888, DoomedConnection)
}
}
end
end