@@ -121,8 +121,10 @@ def instrument_test(driver_path, test, num_samples):
121
121
def get_tests (driver_path , args ):
122
122
"""Return a list of available performance tests"""
123
123
tests = subprocess .check_output ([driver_path , '--list' ]).split ()[2 :]
124
- if args .filter :
125
- return filter (lambda name : name .startswith (args .filter ), tests )
124
+ if args .filters :
125
+ regexes = [re .compile (pattern ) for pattern in args .filters ]
126
+ return sorted (list (set ([name for pattern in regexes
127
+ for name in tests if pattern .match (name )])))
126
128
if not args .benchmarks :
127
129
return tests
128
130
return sorted (list (set (tests ).intersection (set (args .benchmarks ))))
@@ -362,7 +364,7 @@ def positive_int(value):
362
364
363
365
def main ():
364
366
parser = argparse .ArgumentParser (
365
- epilog = 'Example: ./Benchmark_Driver run -i 5 -f Array '
367
+ epilog = 'Example: ./Benchmark_Driver run -i 5 -f Prefix -f .*Suffix.* '
366
368
)
367
369
subparsers = parser .add_subparsers (
368
370
title = 'Swift benchmark driver commands' ,
@@ -375,8 +377,9 @@ def main():
375
377
default = [],
376
378
help = 'benchmark to run (default: all)' , nargs = '*' , metavar = "BENCHMARK" )
377
379
benchmarks_group .add_argument (
378
- '-f' , '--filter' ,
379
- help = 'run all tests whose name starts with PREFIX' , metavar = "PREFIX" )
380
+ '-f' , '--filter' , dest = 'filters' , action = 'append' ,
381
+ help = 'run all tests whose name match regular expression PATTERN, ' +
382
+ 'multiple filters are supported' , metavar = "PATTERN" )
380
383
parent_parser .add_argument (
381
384
'-t' , '--tests' ,
382
385
help = 'directory containing Benchmark_O{,none,unchecked} ' +
0 commit comments