diff --git a/python/scripts/nvbench_compare.py b/python/scripts/nvbench_compare.py index 7dadcf5..1217bdc 100644 --- a/python/scripts/nvbench_compare.py +++ b/python/scripts/nvbench_compare.py @@ -2960,7 +2960,7 @@ def main() -> int: The number of detected regressions is reported in the summary output. """ help_text = "%(prog)s [reference.json compare.json | reference_dir/ compare_dir/]" - parser = argparse.ArgumentParser(prog="nvbench_compare", usage=help_text) + parser = argparse.ArgumentParser(usage=help_text) parser.add_argument( "--ignore-devices", dest="ignore_devices", @@ -3054,8 +3054,10 @@ def main() -> int: action=OrderedBenchmarkFilterAction, help="Filter by benchmark name (can repeat)", ) + parser.add_argument("files_or_dirs", nargs="*") - args, files_or_dirs = parser.parse_known_args() + args = parser.parse_args() + files_or_dirs = args.files_or_dirs try: comparison_preset, comparison_thresholds = resolve_comparison_thresholds( args.preset, args.config diff --git a/python/test/test_nvbench_compare.py b/python/test/test_nvbench_compare.py index a9ea5b6..96e4a67 100644 --- a/python/test/test_nvbench_compare.py +++ b/python/test/test_nvbench_compare.py @@ -1969,6 +1969,19 @@ def test_main_dump_config_merges_config_and_cli_preset( assert "sample_coverage = 0.93" in output +def test_main_rejects_unknown_options(monkeypatch, nvbench_compare): + monkeypatch.setattr( + sys, + "argv", + ["nvbench_compare", "--dispaly", "explain", "ref.json", "cmp.json"], + ) + + with pytest.raises(SystemExit) as exc_info: + nvbench_compare.main() + + assert exc_info.value.code == 2 + + def test_main_prints_bulk_debug_python_to_stdout(monkeypatch, capsys, nvbench_compare): devices = [{"id": 0, "name": "Test GPU"}] root = {