summaryrefslogtreecommitdiff
path: root/test/ruby/test_backtrace.rb
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2025-06-23 22:15:58 +0900
committerYusuke Endoh <mame@ruby-lang.org>2025-06-24 11:39:58 +0900
commit3546cedde3f6f46f00fd67b73081cbfbb83144de (patch)
tree8c8aa13500fe7b693f88d9e18c52a3b4913a062e /test/ruby/test_backtrace.rb
parenta18fa86351f6b904f9d49ff4a23f15aae7680821 (diff)
Set up callable_method_entry for DUMMY frame on ArgumentError
Before the patch: ``` $ ./miniruby -e '[1, 2].inject(:tap)' -e:1:in '<main>': wrong number of arguments (given 1, expected 0) (ArgumentError) from -e:1:in 'Enumerable#inject' from -e:1:in '<main>' ``` After the patch: ``` $ ./miniruby -e '[1, 2].inject(:tap)' -e:1:in 'Kernel#tap': wrong number of arguments (given 1, expected 0) (ArgumentError) from -e:1:in 'Enumerable#inject' from -e:1:in '<main>' ``` Fixes https://bugs.ruby-lang.org/issues/20968#change-113811
Diffstat (limited to 'test/ruby/test_backtrace.rb')
-rw-r--r--test/ruby/test_backtrace.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/ruby/test_backtrace.rb b/test/ruby/test_backtrace.rb
index 01a757f827..dad7dfcb55 100644
--- a/test/ruby/test_backtrace.rb
+++ b/test/ruby/test_backtrace.rb
@@ -460,4 +460,10 @@ class TestBacktrace < Test::Unit::TestCase
assert_equal(__FILE__, backtrace[1].path) # not "<internal:kernel>"
assert_equal("Kernel#tap", backtrace[1].label)
end
+
+ def test_backtrace_on_argument_error
+ lineno = __LINE__; [1, 2].inject(:tap)
+ rescue ArgumentError
+ assert_equal("#{ __FILE__ }:#{ lineno }:in 'Kernel#tap'", $!.backtrace[0].to_s)
+ end
end