50 lines
1.7 KiB
C++
50 lines
1.7 KiB
C++
#undef NDEBUG
|
|
#include <cassert>
|
|
#include <cmath>
|
|
#include <cstdlib>
|
|
|
|
#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(__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);
|
|
}
|