Report error when no benchmarks match regex. (#308)
Fixes #306
diff --git a/src/benchmark.cc b/src/benchmark.cc
index 8e356de..95f6a25 100644
--- a/src/benchmark.cc
+++ b/src/benchmark.cc
@@ -450,7 +450,7 @@
namespace internal {
namespace {
-void RunMatchingBenchmarks(const std::vector<Benchmark::Instance>& benchmarks,
+void RunBenchmarks(const std::vector<Benchmark::Instance>& benchmarks,
BenchmarkReporter* console_reporter,
BenchmarkReporter* file_reporter) {
// Note the file_reporter can be null.
@@ -581,11 +581,15 @@
std::vector<internal::Benchmark::Instance> benchmarks;
if (!FindBenchmarksInternal(spec, &benchmarks, &Err)) return 0;
+ if (benchmarks.empty()) {
+ Err << "Failed to match any benchmarks against regex: " << spec << "\n";
+ return 0;
+ }
+
if (FLAGS_benchmark_list_tests) {
for (auto const& benchmark : benchmarks) Out << benchmark.name << "\n";
} else {
- internal::RunMatchingBenchmarks(benchmarks, console_reporter,
- file_reporter);
+ internal::RunBenchmarks(benchmarks, console_reporter, file_reporter);
}
return benchmarks.size();