summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authortomoya ishida <tomoyapenguin@gmail.com>2025-12-13 01:40:49 +0900
committerGitHub <noreply@github.com>2025-12-13 01:40:49 +0900
commitb8ba9cebb9472c125c946e36ea4455e7aae284a6 (patch)
treebf0adb385a5cdcc647c15e12768bbea5cdcae631 /test/ruby
parentf939cf40ba46f3a8136495702793748fa30c12c3 (diff)
Fix binding.implicit_parameters_get/defined segfault when wrong name string is passed (#15530)
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_proc.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/test/ruby/test_proc.rb b/test/ruby/test_proc.rb
index 9ac1875234..92cdfc6757 100644
--- a/test/ruby/test_proc.rb
+++ b/test/ruby/test_proc.rb
@@ -1913,6 +1913,14 @@ class TestProc < Test::Unit::TestCase
end
end
+ def test_implicit_parameter_invalid_name
+ message_pattern = /is not an implicit parameter/
+ assert_raise_with_message(NameError, message_pattern) { binding.implicit_parameter_defined?(:foo) }
+ assert_raise_with_message(NameError, message_pattern) { binding.implicit_parameter_get(:foo) }
+ assert_raise_with_message(NameError, message_pattern) { binding.implicit_parameter_defined?("wrong_implicit_parameter_name_#{rand(10000)}") }
+ assert_raise_with_message(NameError, message_pattern) { binding.implicit_parameter_get("wrong_implicit_parameter_name_#{rand(10000)}") }
+ end
+
def test_local_variable_set_wb
assert_ruby_status([], <<-'end;', '[Bug #13605]', timeout: 30)
b = binding