summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-18 13:36:46 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-05-18 13:36:46 +0000
commit2082417a48d56295796e2bbfc2001ecf5008a88a (patch)
treed878bc4f903586e57529180e58c3c7dd32722e07 /test/ruby
parentbfb8b125faa32e908c474dece5e3d83a4424d209 (diff)
* eval.c (setup_exception): internal exception should be hidden
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_signal.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/ruby/test_signal.rb b/test/ruby/test_signal.rb
index 26e17b3b64..e3dd273fe1 100644
--- a/test/ruby/test_signal.rb
+++ b/test/ruby/test_signal.rb
@@ -1,5 +1,6 @@
require 'test/unit'
require 'timeout'
+require 'tempfile'
require_relative 'envutil'
class TestSignal < Test::Unit::TestCase
@@ -195,4 +196,28 @@ class TestSignal < Test::Unit::TestCase
w.close
assert_equal(r.read, "foo")
end
+
+ def test_signal_requiring
+ t = Tempfile.new(%w"require_ensure_test .rb")
+ t.puts "sleep"
+ t.close
+ error = IO.popen([EnvUtil.rubybin, "-e", <<EOS, t.path, err: :close]) do |child|
+th = Thread.new do
+ begin
+ require ARGV[0]
+ ensure
+ Marshal.dump($!, STDOUT)
+ end
+end
+STDOUT.puts
+STDOUT.flush
+th.join
+EOS
+ child.gets
+ Process.kill("INT", child.pid)
+ Marshal.load(child)
+ end
+ t.close!
+ assert_nil(error)
+ end
end