blob: e2dd6cfd9d7502cd9abe3020c318b81cf7012bbd [file] [log] [blame]
#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);
}