mirror of
https://github.com/google/benchmark.git
synced 2025-03-14 03:10:22 +08:00
compare_bench.py: fixup benchmark_options. (#435)
2373382284
reworked parsing, and introduced a regression
in handling of the optional options that
should be passed to both of the benchmarks.
Now, unless the *first* optional argument starts with
'-', it would just complain about that argument:
Unrecognized positional argument arguments: '['q']'
which is wrong. However if some dummy arg like '-q' was
passed first, it would then happily passthrough them all...
This commit fixes benchmark_options behavior, by
restoring original passthrough behavior for all
the optional positional arguments.
This commit is contained in:
parent
902936033d
commit
c7192c8a9a
@ -39,21 +39,20 @@ def main():
|
||||
parser.add_argument(
|
||||
'test2', metavar='test2', type=str, nargs=1,
|
||||
help='A benchmark executable or JSON output file')
|
||||
# FIXME this is a dummy argument which will never actually match
|
||||
# any --benchmark flags but it helps generate a better usage message
|
||||
parser.add_argument(
|
||||
'benchmark_options', metavar='benchmark_option', nargs='*',
|
||||
'benchmark_options', metavar='benchmark_options', nargs=argparse.REMAINDER,
|
||||
help='Arguments to pass when running benchmark executables'
|
||||
)
|
||||
args, unknown_args = parser.parse_known_args()
|
||||
# Parse the command line flags
|
||||
test1 = args.test1[0]
|
||||
test2 = args.test2[0]
|
||||
if args.benchmark_options:
|
||||
if unknown_args:
|
||||
# should never happen
|
||||
print("Unrecognized positional argument arguments: '%s'"
|
||||
% args.benchmark_options)
|
||||
% unknown_args)
|
||||
exit(1)
|
||||
benchmark_options = unknown_args
|
||||
benchmark_options = args.benchmark_options
|
||||
check_inputs(test1, test2, benchmark_options)
|
||||
# Run the benchmarks and report the results
|
||||
json1 = gbench.util.run_or_load_benchmark(test1, benchmark_options)
|
||||
|
Loading…
Reference in New Issue
Block a user