mirror of https://github.com/google/benchmark.git
Add SetBenchmarkFilter() to set --benchmark_filter flag value in user code (#1362)
* Add SetBenchmarkFilter() to set --benchmark_filter flag value in user code. Use case: Provide an API to set this flag indepedence of the flag's implementation (ie., absl flag vs benchmark's flag facility) * add test * added notes on Initialize()
This commit is contained in:
parent
df7749cd09
commit
eacce0b503
|
@ -302,6 +302,12 @@ BENCHMARK_EXPORT bool ReportUnrecognizedArguments(int argc, char** argv);
|
|||
// Returns the current value of --benchmark_filter.
|
||||
BENCHMARK_EXPORT std::string GetBenchmarkFilter();
|
||||
|
||||
// Sets a new value to --benchmark_filter. (This will override this flag's
|
||||
// current value).
|
||||
// Should be called after `benchmark::Initialize()`, as
|
||||
// `benchmark::Initialize()` will override the flag's value.
|
||||
BENCHMARK_EXPORT void SetBenchmarkFilter(std::string value);
|
||||
|
||||
// Creates a default display reporter. Used by the library when no display
|
||||
// reporter is provided, but also made available for external use in case a
|
||||
// custom reporter should respect the `--benchmark_format` flag as a fallback
|
||||
|
|
|
@ -535,6 +535,10 @@ void SetDefaultTimeUnit(TimeUnit unit) { default_time_unit = unit; }
|
|||
|
||||
std::string GetBenchmarkFilter() { return FLAGS_benchmark_filter; }
|
||||
|
||||
void SetBenchmarkFilter(std::string value) {
|
||||
FLAGS_benchmark_filter = std::move(value);
|
||||
}
|
||||
|
||||
void RegisterMemoryManager(MemoryManager* manager) {
|
||||
internal::memory_manager = manager;
|
||||
}
|
||||
|
|
|
@ -91,5 +91,15 @@ int main(int argc, char** argv) {
|
|||
<< matched_functions.front() << "]\n";
|
||||
return 2;
|
||||
}
|
||||
|
||||
// Test that SetBenchmarkFilter works.
|
||||
const std::string golden_value = "golden_value";
|
||||
benchmark::SetBenchmarkFilter(golden_value);
|
||||
std::string current_value = benchmark::GetBenchmarkFilter();
|
||||
if (golden_value != current_value) {
|
||||
std::cerr << "Expected [" << golden_value
|
||||
<< "] for --benchmark_filter but got [" << current_value << "]\n";
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue