aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Jan Tattermusch <jtattermusch@users.noreply.github.com>2016-12-20 23:11:22 +0100
committerGravatar GitHub <noreply@github.com>2016-12-20 23:11:22 +0100
commit258d6780966307d27e83b4f6a7707c8824d942cd (patch)
tree2b74b74c655d9870f4b2875ad5e3b91160dbcc26
parent1a741606feb3c110c7b17b2cf00e18ee97decc72 (diff)
parent6a85129d1ad4a191bff37d743a9df9f5b7e11f82 (diff)
Merge pull request #9174 from jtattermusch/matrix_exclude_filters
Support --exclude in run_tests_matrix.py
-rwxr-xr-xtools/run_tests/run_tests_matrix.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/tools/run_tests/run_tests_matrix.py b/tools/run_tests/run_tests_matrix.py
index d954aad403..df48099971 100755
--- a/tools/run_tests/run_tests_matrix.py
+++ b/tools/run_tests/run_tests_matrix.py
@@ -243,14 +243,14 @@ def _allowed_labels():
def _runs_per_test_type(arg_str):
- """Auxiliary function to parse the "runs_per_test" flag."""
- try:
- n = int(arg_str)
- if n <= 0: raise ValueError
- return n
- except:
- msg = '\'{}\' is not a positive integer'.format(arg_str)
- raise argparse.ArgumentTypeError(msg)
+ """Auxiliary function to parse the "runs_per_test" flag."""
+ try:
+ n = int(arg_str)
+ if n <= 0: raise ValueError
+ return n
+ except:
+ msg = '\'{}\' is not a positive integer'.format(arg_str)
+ raise argparse.ArgumentTypeError(msg)
if __name__ == "__main__":
@@ -264,6 +264,11 @@ if __name__ == "__main__":
nargs='+',
default=[],
help='Filter targets to run by label with AND semantics.')
+ argp.add_argument('--exclude',
+ choices=_allowed_labels(),
+ nargs='+',
+ default=[],
+ help='Exclude targets with any of given labels.')
argp.add_argument('--build_only',
default=False,
action='store_const',
@@ -310,7 +315,8 @@ if __name__ == "__main__":
jobs = []
for job in all_jobs:
if not args.filter or all(filter in job.labels for filter in args.filter):
- jobs.append(job)
+ if not any(exclude_label in job.labels for exclude_label in args.exclude):
+ jobs.append(job)
if not jobs:
jobset.message('FAILED', 'No test suites match given criteria.',