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