diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-08-18 23:42:53 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-08-19 01:28:31 +0900 |
commit | d903e7672637d5a834847820a4e18b00ee30f380 (patch) | |
tree | e9ac8cbf0b9c2833446987acdae4c038e0e6ac31 | |
parent | 8c44b07fa4b37f3c2a382e11978b743053093159 (diff) |
Allow strings in assert_pattern_list
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6252
-rw-r--r-- | tool/lib/core_assertions.rb | 10 | ||||
-rw-r--r-- | tool/test/testunit/test_assertion.rb | 8 |
2 files changed, 14 insertions, 4 deletions
diff --git a/tool/lib/core_assertions.rb b/tool/lib/core_assertions.rb index 67373139ca..321ca59f56 100644 --- a/tool/lib/core_assertions.rb +++ b/tool/lib/core_assertions.rb @@ -548,11 +548,13 @@ eom anchored = false else if anchored - match = /\A#{pattern}/.match(rest) + match = rest.rindex(pattern, 0) else - match = pattern.match(rest) + match = rest.index(pattern) end - unless match + if match + post_match = $~ ? $~.post_match : rest[match+pattern.size..-1] + else msg = message(msg) { expect_msg = "Expected #{mu_pp pattern}\n" if /\n[^\n]/ =~ rest @@ -569,7 +571,7 @@ eom } assert false, msg end - rest = match.post_match + rest = post_match anchored = true end } diff --git a/tool/test/testunit/test_assertion.rb b/tool/test/testunit/test_assertion.rb index d12a794a23..709b495572 100644 --- a/tool/test/testunit/test_assertion.rb +++ b/tool/test/testunit/test_assertion.rb @@ -35,6 +35,14 @@ class TestAssertion < Test::Unit::TestCase assert_pattern_list([:*, /foo?/], "afoo") assert_not_pattern_list([:*, /foo?/], "afoo?") assert_pattern_list([/foo?/, :*], "foo?") + + assert_not_pattern_list(["foo?"], "foo") + assert_not_pattern_list(["foo?"], "afoo") + assert_pattern_list(["foo?"], "foo?") + assert_not_pattern_list([:*, "foo?", :*], "foo") + assert_not_pattern_list([:*, "foo?"], "afoo") + assert_pattern_list([:*, "foo?"], "afoo?") + assert_pattern_list(["foo?", :*], "foo?") end def assert_not_pattern_list(pattern_list, actual, message=nil) |