#undef NDEBUG #include #include #include #include "benchmark/benchmark_api.h" #include "benchmark/registration.h" #include "benchmark/state.h" #include "output_test.h" namespace { void BM_ostream(benchmark::State& state) { #if !defined(__GLIBCXX__) || defined(__GLIBC__) || defined(__DragonFly__) // libstdc++ only supports locale manipulations on GNU and // DragonflyBSD platforms at the time of writing, don't run the test // on other platforms when using libstdc++. std::locale::global(std::locale("en_US.UTF-8")); #endif while (state.KeepRunning()) { state.SetIterationTime(1e-6); } } BENCHMARK(BM_ostream)->UseManualTime()->Iterations(1000000); ADD_CASES(TC_ConsoleOut, {{"^BM_ostream/iterations:1000000/manual_time" " %console_report$"}}); ADD_CASES(TC_JSONOut, {{"\"name\": \"BM_ostream/iterations:1000000/manual_time\",$"}, {"\"family_index\": 0,$", MR_Next}, {"\"per_family_instance_index\": 0,$", MR_Next}, {"\"run_name\": " "\"BM_ostream/iterations:1000000/manual_time\",$", MR_Next}, {"\"run_type\": \"iteration\",$", MR_Next}, {"\"repetitions\": 1,$", MR_Next}, {"\"repetition_index\": 0,$", MR_Next}, {"\"threads\": 1,$", MR_Next}, {"\"iterations\": 1000000,$", MR_Next}, {"\"real_time\": %float,$", MR_Next}, {"\"cpu_time\": %float,$", MR_Next}, {"\"time_unit\": \"ns\"$", MR_Next}, {"}", MR_Next}}); ADD_CASES(TC_CSVOut, {{"^\"BM_ostream/iterations:1000000/" "manual_time\",1000000,%float,%float,ns,,,,,$"}}); } // end namespace int main(int argc, char* argv[]) { benchmark::MaybeReenterWithoutASLR(argc, argv); RunOutputTests(argc, argv); }