summaryrefslogtreecommitdiff
path: root/test/ruby/test_keyword.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_keyword.rb')
-rw-r--r--test/ruby/test_keyword.rb15
1 files changed, 13 insertions, 2 deletions
diff --git a/test/ruby/test_keyword.rb b/test/ruby/test_keyword.rb
index d71108fd6ff..d24cd5b0fc4 100644
--- a/test/ruby/test_keyword.rb
+++ b/test/ruby/test_keyword.rb
@@ -310,11 +310,16 @@ class TestKeywordArguments < Test::Unit::TestCase
feature7701 = '[ruby-core:51454] [Feature #7701] required keyword argument'
o = Object.new
assert_nothing_raised(SyntaxError, feature7701) do
- eval("def o.foo(a:) a; end")
+ eval("def o.foo(a:) a; end", nil, "xyzzy")
eval("def o.bar(a:,**b) [a, b]; end")
end
assert_raise_with_message(ArgumentError, /missing keyword/, feature7701) {o.foo}
assert_raise_with_message(ArgumentError, /unknown keyword/, feature7701) {o.foo(a:0, b:1)}
+ begin
+ o.foo(a: 0, b: 1)
+ rescue => e
+ assert_equal('xyzzy', e.backtrace_locations[0].path)
+ end
assert_equal(42, o.foo(a: 42), feature7701)
assert_equal([[:keyreq, :a]], o.method(:foo).parameters, feature7701)
@@ -362,10 +367,16 @@ class TestKeywordArguments < Test::Unit::TestCase
def test_block_required_keyword
feature7701 = '[ruby-core:51454] [Feature #7701] required keyword argument'
b = assert_nothing_raised(SyntaxError, feature7701) do
- break eval("proc {|a:| a}", nil, __FILE__, __LINE__)
+ break eval("proc {|a:| a}", nil, 'xyzzy', __LINE__)
end
assert_raise_with_message(ArgumentError, /missing keyword/, feature7701) {b.call}
assert_raise_with_message(ArgumentError, /unknown keyword/, feature7701) {b.call(a:0, b:1)}
+ begin
+ b.call(a: 0, b: 1)
+ rescue => e
+ assert_equal('xyzzy', e.backtrace_locations[0].path)
+ end
+
assert_equal(42, b.call(a: 42), feature7701)
assert_equal([[:keyreq, :a]], b.parameters, feature7701)