summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--bootstraptest/test_method.rb4
-rw-r--r--test/ruby/test_arity.rb44
3 files changed, 31 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index cb85a8a900..2992e501d5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Sat Oct 24 15:42:20 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * bootstraptest/test_method.rb: relax error message format.
+
+ * test/ruby/test_arity.rb (err_mess): ditto.
+ [Feature #9025], [ruby-core:71178] [Bug #11617]
+
Sat Oct 24 12:47:47 2015 Martin Duerst <duerst@it.aoyama.ac.jp>
* vm_insnhelper.c: improved error message for "wrong number
diff --git a/bootstraptest/test_method.rb b/bootstraptest/test_method.rb
index 639fe73397..3462aa9434 100644
--- a/bootstraptest/test_method.rb
+++ b/bootstraptest/test_method.rb
@@ -3,7 +3,7 @@ assert_equal '1', 'def m() 1 end; m()'
assert_equal '1', 'def m(a) a end; m(1)'
assert_equal '[1, 2]', 'def m(a,b) [a, b] end; m(1,2)'
assert_equal '[1, 2, 3]', 'def m(a,b,c) [a, b, c] end; m(1,2,3)'
-assert_equal 'wrong number of arguments (1 for 0)', %q{
+assert_match /\Awrong number of arguments \(.*\b1\b.* 0\)\z/, %q{
def m; end
begin
m(1)
@@ -12,7 +12,7 @@ assert_equal 'wrong number of arguments (1 for 0)', %q{
end
}
-assert_equal 'wrong number of arguments (0 for 1)', %q{
+assert_match /\Awrong number of arguments \(.*\b0\b.* 1\)\z/, %q{
def m a; end
begin
m
diff --git a/test/ruby/test_arity.rb b/test/ruby/test_arity.rb
index e026841749..4a24bdc660 100644
--- a/test/ruby/test_arity.rb
+++ b/test/ruby/test_arity.rb
@@ -3,7 +3,7 @@ require 'test/unit'
class TestArity < Test::Unit::TestCase
def err_mess(method_proc = nil, argc = 0)
args = (1..argc).to_a
- assert_raise_with_message(ArgumentError, /wrong number of arguments \((.*)\)/) do
+ assert_raise_with_message(ArgumentError, /wrong number of arguments \(.*\b(\d+)\b.* (\d\S*?)\)/) do
case method_proc
when nil
yield
@@ -13,7 +13,7 @@ class TestArity < Test::Unit::TestCase
method_proc.call(*args)
end
end
- $1
+ [$1, $2]
end
def a
@@ -35,22 +35,22 @@ class TestArity < Test::Unit::TestCase
end
def test_method_err_mess
- assert_equal "1 for 0", err_mess(:a, 1)
- assert_equal "10 for 7..9", err_mess(:b, 10)
- assert_equal "2 for 3+", err_mess(:c, 2)
- assert_equal "2 for 1", err_mess(:d, 2)
- assert_equal "0 for 1", err_mess(:d, 0)
- assert_equal "2 for 1", err_mess(:e, 2)
- assert_equal "0 for 1", err_mess(:e, 0)
- assert_equal "1 for 2+", err_mess(:f, 1)
+ assert_equal %w[1 0], err_mess(:a, 1)
+ assert_equal %w[10 7..9], err_mess(:b, 10)
+ assert_equal %w[2 3+], err_mess(:c, 2)
+ assert_equal %w[2 1], err_mess(:d, 2)
+ assert_equal %w[0 1], err_mess(:d, 0)
+ assert_equal %w[2 1], err_mess(:e, 2)
+ assert_equal %w[0 1], err_mess(:e, 0)
+ assert_equal %w[1 2+], err_mess(:f, 1)
end
def test_proc_err_mess
- assert_equal "0 for 1..2", err_mess(->(b, c=42){}, 0)
- assert_equal "1 for 2+", err_mess(->(a, b, c=42, *d){}, 1)
- assert_equal "3 for 4+", err_mess(->(a, b, *c, d, e){}, 3)
- assert_equal "3 for 1..2", err_mess(->(b, c=42){}, 3)
- assert_equal "1 for 0", err_mess(->(&block){}, 1)
+ assert_equal %w[0 1..2], err_mess(->(b, c=42){}, 0)
+ assert_equal %w[1 2+], err_mess(->(a, b, c=42, *d){}, 1)
+ assert_equal %w[3 4+], err_mess(->(a, b, *c, d, e){}, 3)
+ assert_equal %w[3 1..2], err_mess(->(b, c=42){}, 3)
+ assert_equal %w[1 0], err_mess(->(&block){}, 1)
# Double checking:
p = Proc.new{|b, c=42| :ok}
assert_equal :ok, p.call(1, 2, 3)
@@ -58,12 +58,12 @@ class TestArity < Test::Unit::TestCase
end
def test_message_change_issue_6085
- assert_equal "3 for 1..2", err_mess{ SignalException.new(1, "", nil) }
- assert_equal "1 for 0", err_mess{ Hash.new(1){} }
- assert_equal "3 for 1..2", err_mess{ Module.send :define_method, 1, 2, 3 }
- assert_equal "1 for 2", err_mess{ "".sub!(//) }
- assert_equal "0 for 1..2", err_mess{ "".sub!{} }
- assert_equal "0 for 1+", err_mess{ exec }
- assert_equal "0 for 1+", err_mess{ Struct.new }
+ assert_equal %w[3 1..2], err_mess{ SignalException.new(1, "", nil) }
+ assert_equal %w[1 0], err_mess{ Hash.new(1){} }
+ assert_equal %w[3 1..2], err_mess{ Module.send :define_method, 1, 2, 3 }
+ assert_equal %w[1 2], err_mess{ "".sub!(//) }
+ assert_equal %w[0 1..2], err_mess{ "".sub!{} }
+ assert_equal %w[0 1+], err_mess{ exec }
+ assert_equal %w[0 1+], err_mess{ Struct.new }
end
end