1 // Copyright 2017 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 #pragma once
6 
7 #include <stddef.h>
8 
9 #include <trace-engine/types.h>
10 
11 struct BenchmarkSpec {
12     const char* name;
13     trace_buffering_mode_t mode;
14     size_t buffer_size;
15     // The number of iterations is a parameter to make it easier to
16     // experiment and debug.
17     unsigned num_iterations;
18 };
19 
20 // Runs benchmarks which need tracing disabled.
21 void RunTracingDisabledBenchmarks();
22 
23 // Runs benchmarks which need tracing enabled.
24 void RunTracingEnabledBenchmarks(const BenchmarkSpec* spec);
25 
26 // Runs benchmarks with NTRACE macro defined.
27 void RunNoTraceBenchmarks();
28