bench: surround main() execution with try/catch

so we have a cleaner exit on internal runtime errors.
e.g. an unknown priority level.
This commit is contained in:
furszy
2022-09-25 12:21:00 -03:00
parent 3da7cd2a76
commit 466b54bd4a

View File

@@ -118,17 +118,22 @@ int main(int argc, char** argv)
return EXIT_SUCCESS; return EXIT_SUCCESS;
} }
benchmark::Args args; try {
args.asymptote = parseAsymptote(argsman.GetArg("-asymptote", "")); benchmark::Args args;
args.is_list_only = argsman.GetBoolArg("-list", false); args.asymptote = parseAsymptote(argsman.GetArg("-asymptote", ""));
args.min_time = std::chrono::milliseconds(argsman.GetIntArg("-min-time", DEFAULT_MIN_TIME_MS)); args.is_list_only = argsman.GetBoolArg("-list", false);
args.output_csv = argsman.GetPathArg("-output-csv"); args.min_time = std::chrono::milliseconds(argsman.GetIntArg("-min-time", DEFAULT_MIN_TIME_MS));
args.output_json = argsman.GetPathArg("-output-json"); args.output_csv = argsman.GetPathArg("-output-csv");
args.regex_filter = argsman.GetArg("-filter", DEFAULT_BENCH_FILTER); args.output_json = argsman.GetPathArg("-output-json");
args.sanity_check = argsman.GetBoolArg("-sanity-check", false); args.regex_filter = argsman.GetArg("-filter", DEFAULT_BENCH_FILTER);
args.priority = parsePriorityLevel(argsman.GetArg("-priority-level", DEFAULT_PRIORITY)); args.sanity_check = argsman.GetBoolArg("-sanity-check", false);
args.priority = parsePriorityLevel(argsman.GetArg("-priority-level", DEFAULT_PRIORITY));
benchmark::BenchRunner::RunAll(args); benchmark::BenchRunner::RunAll(args);
return EXIT_SUCCESS; return EXIT_SUCCESS;
} catch (const std::exception& e) {
tfm::format(std::cerr, "Error: %s\n", e.what());
return EXIT_FAILURE;
}
} }