| |
| #include "benchmark/benchmark.h" |
| |
| #include <cassert> |
| #include <memory> |
| |
| class MyFixture : public ::benchmark::Fixture { |
| public: |
| void SetUp(const ::benchmark::State&) { |
| assert(data.get() == nullptr); |
| data.reset(new int(42)); |
| } |
| |
| void TearDown() { |
| assert(data.get() != nullptr); |
| data.release(); |
| } |
| |
| ~MyFixture() { |
| assert(data == nullptr); |
| } |
| |
| std::unique_ptr<int> data; |
| }; |
| |
| |
| BENCHMARK_F(MyFixture, Foo)(benchmark::State& st) { |
| assert(data.get() != nullptr); |
| assert(*data == 42); |
| while (st.KeepRunning()) { |
| } |
| } |
| |
| BENCHMARK_DEFINE_F(MyFixture, Bar)(benchmark::State& st) { |
| while (st.KeepRunning()) { |
| } |
| st.SetItemsProcessed(st.range_x()); |
| } |
| BENCHMARK_REGISTER_F(MyFixture, Bar)->Arg(42); |
| |
| BENCHMARK_MAIN() |