Chromium Code Reviews| Index: build/util/lib/common/unittest_util.py |
| diff --git a/build/util/lib/common/unittest_util.py b/build/util/lib/common/unittest_util.py |
| index 189f5871c740f046093bf36f69639407214bba78..5f5b158119dcda5f0f7946e2c05cd28e1a273d5b 100644 |
| --- a/build/util/lib/common/unittest_util.py |
| +++ b/build/util/lib/common/unittest_util.py |
| @@ -132,22 +132,15 @@ def FilterTestNames(all_tests, gtest_filter): |
| positive_patterns = ['*'] |
| if pattern_groups[0]: |
| positive_patterns = pattern_groups[0].split(':') |
| - negative_patterns = None |
| + negative_patterns = [] |
| if len(pattern_groups) > 1: |
| negative_patterns = pattern_groups[1].split(':') |
| tests = [] |
| - for test in all_tests: |
| - # Test name must by matched by one positive pattern. |
| - for pattern in positive_patterns: |
| - if fnmatch.fnmatch(test, pattern): |
| - break |
| - else: |
| - continue |
| - # Test name must not be matched by any negative patterns. |
| - for pattern in negative_patterns or []: |
| - if fnmatch.fnmatch(test, pattern): |
| - break |
| - else: |
| - tests += [test] |
| + for i in range(len(positive_patterns)): |
| + pt_tests = [test for test in all_tests |
|
mikecase (-- gone --)
2015/12/15 16:32:20
What does "pt" stand for?
|
| + if (fnmatch.fnmatch(test, positive_patterns[i]) and |
| + not any(fnmatch(test, p) for p in negative_patterns) and |
| + not any(fnmatch(test, p) for p in positive_patterns[:i]))] |
|
jbudorick
2015/12/15 16:35:58
I think you could make tests a set instead of a li
|
| + tests.extend(pt_tests) |
| return tests |