| #undef NDEBUG |
| #include <cassert> |
| #include <cmath> |
| #include <cstdlib> |
| |
| #include "benchmark/benchmark.h" |
| #include "output_test.h" |
| |
| namespace { |
| void BM_ostream(benchmark::State& state) { |
| #if !defined(__MINGW64__) || defined(__clang__) |
| // GCC-based versions of MINGW64 do not support locale manipulations, |
| // don't run the test under them. |
| 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); |
| } |