Sha256: 103305b557c0d8847168f6d0ed097416222beae9f990d4981182ce2b4e64010b
Contents?: true
Size: 1.84 KB
Versions: 1
Compression:
Stored size: 1.84 KB
Contents
// Testing: // State::PauseTiming() // State::ResumeTiming() // Test that CHECK's within these function diagnose when they are called // outside of the KeepRunning() loop. // // NOTE: Users should NOT include or use src/check.h. This is only done in // order to test library internals. #include <cstdlib> #include <stdexcept> #include "../src/check.h" #include "benchmark/benchmark.h" #if defined(__GNUC__) && !defined(__EXCEPTIONS) #define TEST_HAS_NO_EXCEPTIONS #endif void TestHandler() { #ifndef TEST_HAS_NO_EXCEPTIONS throw std::logic_error(""); #else std::abort(); #endif } void try_invalid_pause_resume(benchmark::State& state) { #if !defined(TEST_BENCHMARK_LIBRARY_HAS_NO_ASSERTIONS) && !defined(TEST_HAS_NO_EXCEPTIONS) try { state.PauseTiming(); std::abort(); } catch (std::logic_error const&) { } try { state.ResumeTiming(); std::abort(); } catch (std::logic_error const&) { } #else (void)state; // avoid unused warning #endif } void BM_diagnostic_test(benchmark::State& state) { static bool called_once = false; if (called_once == false) try_invalid_pause_resume(state); for (auto _ : state) { benchmark::DoNotOptimize(state.iterations()); } if (called_once == false) try_invalid_pause_resume(state); called_once = true; } BENCHMARK(BM_diagnostic_test); void BM_diagnostic_test_keep_running(benchmark::State& state) { static bool called_once = false; if (called_once == false) try_invalid_pause_resume(state); while(state.KeepRunning()) { benchmark::DoNotOptimize(state.iterations()); } if (called_once == false) try_invalid_pause_resume(state); called_once = true; } BENCHMARK(BM_diagnostic_test_keep_running); int main(int argc, char* argv[]) { benchmark::internal::GetAbortHandler() = &TestHandler; benchmark::Initialize(&argc, argv); benchmark::RunSpecifiedBenchmarks(); }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
simdjson-0.3.0 | vendor/simdjson/dependencies/benchmark/test/diagnostics_test.cc |