summaryrefslogtreecommitdiff
path: root/spec/ruby/language/ensure_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/language/ensure_spec.rb')
-rw-r--r--spec/ruby/language/ensure_spec.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/spec/ruby/language/ensure_spec.rb b/spec/ruby/language/ensure_spec.rb
index e893904bcb..16e626b4d0 100644
--- a/spec/ruby/language/ensure_spec.rb
+++ b/spec/ruby/language/ensure_spec.rb
@@ -328,4 +328,21 @@ describe "An ensure block inside 'do end' block" do
result.should == :begin
end
+
+ ruby_version_is "3.4" do
+ it "does not introduce extra backtrace entries" do
+ def foo
+ begin
+ raise "oops"
+ ensure
+ return caller(0, 2) # rubocop:disable Lint/EnsureReturn
+ end
+ end
+ line = __LINE__
+ foo.should == [
+ "#{__FILE__}:#{line-3}:in 'foo'",
+ "#{__FILE__}:#{line+1}:in 'block (3 levels) in <top (required)>'"
+ ]
+ end
+ end
end