1 | |
2 | #undef NDEBUG |
3 | #include <cstdio> |
4 | #include <string> |
5 | |
6 | #include "benchmark/benchmark.h" |
7 | #include "output_test.h" |
8 | |
9 | // Ok this test is super ugly. We want to check what happens with the file |
10 | // reporter in the presence of ReportAggregatesOnly(). |
11 | // We do not care about console output, the normal tests check that already. |
12 | |
13 | void BM_SummaryRepeat(benchmark::State& state) { |
14 | for (auto _ : state) { |
15 | } |
16 | } |
17 | BENCHMARK(BM_SummaryRepeat)->Repetitions(n: 3)->ReportAggregatesOnly(); |
18 | |
19 | int main(int argc, char* argv[]) { |
20 | const std::string output = GetFileReporterOutput(argc, argv); |
21 | |
22 | if (SubstrCnt(haystack: output, pat: "\"name\": \"BM_SummaryRepeat/repeats:3" ) != 4 || |
23 | SubstrCnt(haystack: output, pat: "\"name\": \"BM_SummaryRepeat/repeats:3_mean\"" ) != 1 || |
24 | SubstrCnt(haystack: output, pat: "\"name\": \"BM_SummaryRepeat/repeats:3_median\"" ) != |
25 | 1 || |
26 | SubstrCnt(haystack: output, pat: "\"name\": \"BM_SummaryRepeat/repeats:3_stddev\"" ) != |
27 | 1 || |
28 | SubstrCnt(haystack: output, pat: "\"name\": \"BM_SummaryRepeat/repeats:3_cv\"" ) != 1) { |
29 | std::cout << "Precondition mismatch. Expected to only find four " |
30 | "occurrences of \"BM_SummaryRepeat/repeats:3\" substring:\n" |
31 | "\"name\": \"BM_SummaryRepeat/repeats:3_mean\", " |
32 | "\"name\": \"BM_SummaryRepeat/repeats:3_median\", " |
33 | "\"name\": \"BM_SummaryRepeat/repeats:3_stddev\", " |
34 | "\"name\": \"BM_SummaryRepeat/repeats:3_cv\"\nThe entire " |
35 | "output:\n" ; |
36 | std::cout << output; |
37 | return 1; |
38 | } |
39 | |
40 | return 0; |
41 | } |
42 | |