From d903e7672637d5a834847820a4e18b00ee30f380 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 18 Aug 2022 23:42:53 +0900 Subject: [PATCH] Allow strings in assert_pattern_list --- tool/lib/core_assertions.rb | 10 ++++++---- 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)