1// Copyright 2018 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include <perftest/perftest.h>
6
7namespace {
8
9// This is a test that does nothing.  This is useful for measuring the
10// overhead of the performance testing framework.  There will be some
11// overhead in the perftest framework's loop that calls this function, and
12// in the KeepRunning() calls that collect timing data.
13bool NullTest() {
14    return true;
15}
16
17// This is a multi-step test where the steps do nothing.  This is useful
18// for measuring the overhead of the performance testing framework.
19bool Null5StepTest(perftest::RepeatState* state) {
20    state->DeclareStep("step1");
21    state->DeclareStep("step2");
22    state->DeclareStep("step3");
23    state->DeclareStep("step4");
24    state->DeclareStep("step5");
25    while (state->KeepRunning()) {
26        state->NextStep();
27        state->NextStep();
28        state->NextStep();
29        state->NextStep();
30    }
31    return true;
32}
33
34void RegisterTests() {
35    perftest::RegisterSimpleTest<NullTest>("Null");
36    perftest::RegisterTest("Null5Step", Null5StepTest);
37}
38PERFTEST_CTOR(RegisterTests);
39
40}  // namespace
41