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..29bec6cf2bf54b30dbf0ff77d98663ccea80bc8d 100644 |
| --- a/build/util/lib/common/unittest_util.py |
| +++ b/build/util/lib/common/unittest_util.py |
| @@ -132,22 +132,18 @@ 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] |
| + test_set = set() |
| + for pattern in positive_patterns: |
| + pattern_tests = [ |
| + test for test in all_tests |
| + if (fnmatch.fnmatch(test, pattern) and |
|
jbudorick
2015/12/15 21:52:19
nit: move the two ands down to the beginning of th
alexandermont
2015/12/15 21:59:28
Done.
|
| + not any(fnmatch(test, p) for p in negative_patterns) and |
| + test not in test_set)] |
| + tests.extend(pattern_tests) |
| + test_set.update(pattern_tests) |
| return tests |