xref: /third_party/benchmark/test/templated_fixture_test.cc (revision a8c51b3f)
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /third_party/benchmark/test/
1a8c51b3fSopenharmony_ci
2a8c51b3fSopenharmony_ci#include <cassert>
3a8c51b3fSopenharmony_ci#include <memory>
4a8c51b3fSopenharmony_ci
5a8c51b3fSopenharmony_ci#include "benchmark/benchmark.h"
6a8c51b3fSopenharmony_ci
7a8c51b3fSopenharmony_citemplate <typename T>
8a8c51b3fSopenharmony_ciclass MyFixture : public ::benchmark::Fixture {
9a8c51b3fSopenharmony_ci public:
10a8c51b3fSopenharmony_ci  MyFixture() : data(0) {}
11a8c51b3fSopenharmony_ci
12a8c51b3fSopenharmony_ci  T data;
13a8c51b3fSopenharmony_ci};
14a8c51b3fSopenharmony_ci
15a8c51b3fSopenharmony_ciBENCHMARK_TEMPLATE_F(MyFixture, Foo, int)(benchmark::State& st) {
16a8c51b3fSopenharmony_ci  for (auto _ : st) {
17a8c51b3fSopenharmony_ci    data += 1;
18a8c51b3fSopenharmony_ci  }
19a8c51b3fSopenharmony_ci}
20a8c51b3fSopenharmony_ci
21a8c51b3fSopenharmony_ciBENCHMARK_TEMPLATE_DEFINE_F(MyFixture, Bar, double)(benchmark::State& st) {
22a8c51b3fSopenharmony_ci  for (auto _ : st) {
23a8c51b3fSopenharmony_ci    data += 1.0;
24a8c51b3fSopenharmony_ci  }
25a8c51b3fSopenharmony_ci}
26a8c51b3fSopenharmony_ciBENCHMARK_REGISTER_F(MyFixture, Bar);
27a8c51b3fSopenharmony_ci
28a8c51b3fSopenharmony_ciBENCHMARK_MAIN();
29

Indexes created Thu Nov 07 10:32:03 CST 2024