| Index: chrome/test/chromedriver/test_expectations
|
| diff --git a/chrome/test/chromedriver/test_expectations b/chrome/test/chromedriver/test_expectations
|
| index 6c591009f714822b515e8c2ee02bbdf67a2755cd..92dd84bbb49d7aa0c316a55a27e57e5bc43e74e6 100644
|
| --- a/chrome/test/chromedriver/test_expectations
|
| +++ b/chrome/test/chromedriver/test_expectations
|
| @@ -177,3 +177,27 @@ def GetPassedJavaTestFilter(operating_system, chrome_version):
|
| """
|
| return '*-' + ':'.join(_OS_NEGATIVE_FILTER[operating_system] +
|
| _REVISION_NEGATIVE_FILTER[chrome_version])
|
| +
|
| +def ApplyJavaTestFilter(operating_system, chrome_version, tests):
|
| + """Applies the test filter to the given list of tests.
|
| +
|
| + Args:
|
| + operating_system: The operating system, one of 'linux', 'mac', 'win', or
|
| + 'android'.
|
| + chrome_version: Chrome version to test against, e.g., 'HEAD' or '26'.
|
| + test: list of test names to filter.
|
| +
|
| + Returns:
|
| + Set of passed test names.
|
| + """
|
| + filters = (_OS_NEGATIVE_FILTER[operating_system] +
|
| + _REVISION_NEGATIVE_FILTER[chrome_version])
|
| + passed = set(tests)
|
| + for f in filters:
|
| + passed.difference_update(set(t for t in tests if _TestMatchesFilter(t, f)))
|
| + return passed
|
| +
|
| +def _TestMatchesFilter(test, filter):
|
| + if '*' in filter:
|
| + return test[:len(filter) - 1] == test[:-1]
|
| + return test == filter
|
|
|