summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/benchmark/test/fixture_test.cc
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/benchmark/test/fixture_test.cc')
-rw-r--r--3rdparty/benchmark/test/fixture_test.cc42
1 files changed, 42 insertions, 0 deletions
diff --git a/3rdparty/benchmark/test/fixture_test.cc b/3rdparty/benchmark/test/fixture_test.cc
new file mode 100644
index 00000000000..8aea6ef0601
--- /dev/null
+++ b/3rdparty/benchmark/test/fixture_test.cc
@@ -0,0 +1,42 @@
+
+#include "benchmark/benchmark.h"
+
+#include <cassert>
+
+class MyFixture : public ::benchmark::Fixture
+{
+public:
+ void SetUp() {
+ data = new int(42);
+ }
+
+ void TearDown() {
+ assert(data != nullptr);
+ delete data;
+ data = nullptr;
+ }
+
+ ~MyFixture() {
+ assert(data == nullptr);
+ }
+
+ int* data;
+};
+
+
+BENCHMARK_F(MyFixture, Foo)(benchmark::State& st) {
+ assert(data != 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()