diff options
author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-10-27 10:48:40 +0000 |
---|---|---|
committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-10-27 10:48:40 +0000 |
commit | 3e6337b88b5255aba07b8f44de72cd5885f59465 (patch) | |
tree | 6146781aa381404b88ea4bfa2a44e75e8bc90d14 /spec/ruby/shared/kernel | |
parent | ecc707e233a5577ea2048b3199d4baaf96c6b0f8 (diff) |
Update to ruby/spec@8b743a3
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/ruby/shared/kernel')
-rw-r--r-- | spec/ruby/shared/kernel/raise.rb | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/spec/ruby/shared/kernel/raise.rb b/spec/ruby/shared/kernel/raise.rb index 70d638fff9..4128a636ad 100644 --- a/spec/ruby/shared/kernel/raise.rb +++ b/spec/ruby/shared/kernel/raise.rb @@ -41,7 +41,7 @@ describe :kernel_raise, shared: true do lambda { @object.raise(nil) }.should raise_error(TypeError) end - it "re-raises the rescued exception" do + it "re-raises the previously rescued exception if no exception is specified" do lambda do begin raise Exception, "outer" @@ -60,6 +60,22 @@ describe :kernel_raise, shared: true do ScratchPad.recorded.should be_nil end + it "re-raises a previously rescued exception without overwriting the backtrace" do + begin + raise 'raised' + rescue => raised + begin + raise_again_line = __LINE__; raise raised + rescue => raised_again + # This spec is written using #backtrace and matching the line number + # from the string, as backtrace_locations is a more advanced + # method that is not always supported by implementations. + + raised_again.backtrace.first.should_not include(":#{raise_again_line}:") + end + end + end + it "allows Exception, message, and backtrace parameters" do lambda do @object.raise(ArgumentError, "message", caller) |