diff --git a/include/benchmark/benchmark.h b/include/benchmark/benchmark.h index abb9c7f5aa..e0ba41420d 100644 --- a/include/benchmark/benchmark.h +++ b/include/benchmark/benchmark.h @@ -284,7 +284,26 @@ BENCHMARK(BM_test)->Unit(benchmark::kMillisecond); namespace benchmark { class BenchmarkReporter; -void Initialize(int* argc, char** argv, void (*help_printer)()); +inline void HelperPrinter() { + fprintf(stdout, + "benchmark" + " [--benchmark_list_tests={true|false}]\n" + " [--benchmark_filter=]\n" + " [--benchmark_min_time=]\n" + " [--benchmark_repetitions=]\n" + " [--benchmark_enable_random_interleaving={true|false}]\n" + " [--benchmark_report_aggregates_only={true|false}]\n" + " [--benchmark_display_aggregates_only={true|false}]\n" + " [--benchmark_format=]\n" + " [--benchmark_out=]\n" + " [--benchmark_out_format=]\n" + " [--benchmark_color={auto|true|false}]\n" + " [--benchmark_counters_tabular={true|false}]\n" + " [--benchmark_context==,...]\n" + " [--v=]\n"); +} +void Initialize(int* argc, char** argv, + void (*HelperPrintf)() = benchmark::HelperPrinter); void Shutdown(); // Report to stdout all arguments in 'argv' as unrecognized except the first. @@ -1182,25 +1201,6 @@ class LambdaBenchmark : public Benchmark { Lambda lambda_; }; #endif - -inline void helper_printer() { - fprintf(stdout, - "benchmark" - " [--benchmark_list_tests={true|false}]\n" - " [--benchmark_filter=]\n" - " [--benchmark_min_time=]\n" - " [--benchmark_repetitions=]\n" - " [--benchmark_enable_random_interleaving={true|false}]\n" - " [--benchmark_report_aggregates_only={true|false}]\n" - " [--benchmark_display_aggregates_only={true|false}]\n" - " [--benchmark_format=]\n" - " [--benchmark_out=]\n" - " [--benchmark_out_format=]\n" - " [--benchmark_color={auto|true|false}]\n" - " [--benchmark_counters_tabular={true|false}]\n" - " [--benchmark_context==,...]\n" - " [--v=]\n"); -} } // namespace internal inline internal::Benchmark* RegisterBenchmark(const char* name, @@ -1462,8 +1462,7 @@ class Fixture : public internal::Benchmark { #endif // Helper macro to create a main routine in a test that runs the benchmarks -#define BENCHMARK_MAIN() \ - BENCHMARK_MAIN_HELPER(::benchmark::internal::helper_printer) +#define BENCHMARK_MAIN() BENCHMARK_MAIN_HELPER(::benchmark::HelperPrinter) #define BENCHMARK_MAIN_HELPER(helpPrinter) \ int main(int argc, char** argv) { \ diff --git a/src/benchmark.cc b/src/benchmark.cc index 66dfb70c92..b5d4954883 100644 --- a/src/benchmark.cc +++ b/src/benchmark.cc @@ -538,10 +538,10 @@ void AddCustomContext(const std::string& key, const std::string& value) { namespace internal { -void (*hprintf)(); +void (*HelperPrintf)(); void PrintUsageAndExit() { - hprintf(); + HelperPrintf(); exit(0); } @@ -604,10 +604,10 @@ int InitializeStreams() { } // end namespace internal -void Initialize(int* argc, char** argv, void (*helper_printer)()) { +void Initialize(int* argc, char** argv, void (*HelperPrintf)()) { internal::ParseCommandLineFlags(argc, argv); internal::LogLevel() = FLAGS_v; - internal::hprintf = helper_printer; + internal::HelperPrintf = HelperPrintf; } void Shutdown() { delete internal::global_context; } diff --git a/test/benchmark_setup_teardown_test.cc b/test/benchmark_setup_teardown_test.cc index 8667cefe2f..efa34e15c1 100644 --- a/test/benchmark_setup_teardown_test.cc +++ b/test/benchmark_setup_teardown_test.cc @@ -128,7 +128,7 @@ BENCHMARK(BM_WithRep) ->Repetitions(4); int main(int argc, char** argv) { - benchmark::Initialize(&argc, argv, benchmark::internal::helper_printer); + benchmark::Initialize(&argc, argv); size_t ret = benchmark::RunSpecifiedBenchmarks("."); assert(ret > 0); diff --git a/test/diagnostics_test.cc b/test/diagnostics_test.cc index 44fea51217..c54d5b0d70 100644 --- a/test/diagnostics_test.cc +++ b/test/diagnostics_test.cc @@ -75,6 +75,6 @@ BENCHMARK(BM_diagnostic_test_keep_running); int main(int argc, char* argv[]) { benchmark::internal::GetAbortHandler() = &TestHandler; - benchmark::Initialize(&argc, argv, benchmark::internal::helper_printer); + benchmark::Initialize(&argc, argv); benchmark::RunSpecifiedBenchmarks(); } diff --git a/test/filter_test.cc b/test/filter_test.cc index b0c59bbcb4..a567de2dd5 100644 --- a/test/filter_test.cc +++ b/test/filter_test.cc @@ -76,7 +76,7 @@ int main(int argc, char** argv) { list_only |= std::string(argv[i]).find("--benchmark_list_tests") != std::string::npos; - benchmark::Initialize(&argc, argv, benchmark::internal::helper_printer); + benchmark::Initialize(&argc, argv); TestReporter test_reporter; const size_t returned_count = diff --git a/test/output_test_helper.cc b/test/output_test_helper.cc index 184228806b..81584cbf77 100644 --- a/test/output_test_helper.cc +++ b/test/output_test_helper.cc @@ -387,7 +387,7 @@ BENCHMARK_DISABLE_DEPRECATED_WARNING void RunOutputTests(int argc, char* argv[]) { using internal::GetTestCaseList; - benchmark::Initialize(&argc, argv, benchmark::internal::helper_printer); + benchmark::Initialize(&argc, argv); auto options = benchmark::internal::GetOutputOptions(/*force_no_color*/ true); benchmark::ConsoleReporter CR(options); benchmark::JSONReporter JR; @@ -504,8 +504,7 @@ std::string GetFileReporterOutput(int argc, char* argv[]) { argc = int(new_argv.size()); - benchmark::Initialize(&argc, new_argv.data(), - benchmark::internal::helper_printer); + benchmark::Initialize(&argc, new_argv.data()); benchmark::RunSpecifiedBenchmarks(); // Read the output back from the file, and delete the file. diff --git a/test/register_benchmark_test.cc b/test/register_benchmark_test.cc index 5502b578d2..602405b67e 100644 --- a/test/register_benchmark_test.cc +++ b/test/register_benchmark_test.cc @@ -177,7 +177,7 @@ void RunTestTwo() { } int main(int argc, char* argv[]) { - benchmark::Initialize(&argc, argv, benchmark::internal::helper_printer); + benchmark::Initialize(&argc, argv); RunTestOne(); RunTestTwo(); diff --git a/test/skip_with_error_test.cc b/test/skip_with_error_test.cc index 4dd12264a9..026d479133 100644 --- a/test/skip_with_error_test.cc +++ b/test/skip_with_error_test.cc @@ -177,7 +177,7 @@ ADD_CASES("BM_error_while_paused", {{"/1/threads:1", true, "error message"}, {"/2/threads:8", false, ""}}); int main(int argc, char* argv[]) { - benchmark::Initialize(&argc, argv, benchmark::internal::helper_printer); + benchmark::Initialize(&argc, argv); TestReporter test_reporter; benchmark::RunSpecifiedBenchmarks(&test_reporter); diff --git a/test/spec_arg_test.cc b/test/spec_arg_test.cc index b263899343..043db1be47 100644 --- a/test/spec_arg_test.cc +++ b/test/spec_arg_test.cc @@ -67,7 +67,7 @@ int main(int argc, char** argv) { } assert(found); - benchmark::Initialize(&argc, argv, benchmark::internal::helper_printer); + benchmark::Initialize(&argc, argv); // Check that the current flag value is reported accurately via the // GetBenchmarkFilter() function.