diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-11-09 15:16:23 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-11-09 15:20:44 +0900 |
commit | 3ff0a0b40c2e1fbdad2286f1dafe837f822d0e0d (patch) | |
tree | 790b7fed0d682cca920aa69dbce08de1bf602bee | |
parent | 6cf7c0a48fb07a765d447404aba33636d9d87c89 (diff) | |
download | ruby-3ff0a0b40c2e1fbdad2286f1dafe837f822d0e0d.tar.gz |
Filter method names only if filtering method name only
If sole `filter` option doesn't seem including test case name,
match with method name only.
And if the filter is a Regexp or String, it never matches method
name symbols.
-rw-r--r-- | tool/lib/test/unit.rb | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/tool/lib/test/unit.rb b/tool/lib/test/unit.rb index 0482c8073f..80851eed16 100644 --- a/tool/lib/test/unit.rb +++ b/tool/lib/test/unit.rb @@ -240,6 +240,9 @@ module Test filter = nil elsif negative.empty? and positive.size == 1 and pos_pat !~ positive[0] filter = positive[0] + unless /\A[A-Z]\w*(?:::[A-Z]\w*)*#/ =~ filter + filter = /##{Regexp.quote(filter)}\z/ + end else filter = Regexp.union(*positive.map! {|s| Regexp.new(s[pos_pat, 1] || "\\A#{Regexp.quote(s)}\\z")}) end @@ -1497,15 +1500,9 @@ module Test all_test_methods = suite.send "#{type}_methods" if filter - if Regexp === filter - all_test_methods.select! {|method| - filter === "#{suite}##{method}" - } - else - all_test_methods.select! {|method| - filter === method || filter === "#{suite}##{method}" - } - end + all_test_methods.select! {|method| + filter === "#{suite}##{method}" + } end all_test_methods = @order.sort_by_name(all_test_methods) |