blob: 221163481bcdfb67dcaaffa7cf77aeeb0837183c [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <stdio.h>
#include "benchmarks.h"
#define NTRACE
#include <lib/trace/event.h>
#include <trace-vthread/event_vthread.h>
#include "runner.h"
static void NullSetup() {}
static void NullTeardown() {}
#define NTRACE_DURATION_TEST(DURATION_MACRO) \
RunAndMeasure( \
#DURATION_MACRO " macro with 0 arguments", "NTRACE", \
[] { DURATION_MACRO("+enabled", "name"); }, NullSetup, NullTeardown); \
\
RunAndMeasure( \
#DURATION_MACRO " macro with 1 int32 argument", "NTRACE", \
[] { DURATION_MACRO("+enabled", "name", "k1", 1); }, NullSetup, NullTeardown); \
\
RunAndMeasure( \
#DURATION_MACRO " macro with 4 int32 arguments", "NTRACE", \
[] { DURATION_MACRO("+enabled", "name", "k1", 1, "k2", 2, "k3", 3, "k4", 4); }, NullSetup, \
NullTeardown); \
\
RunAndMeasure( \
#DURATION_MACRO " macro with 8 int32 arguments", "NTRACE", \
[] { \
DURATION_MACRO("+enabled", "name", "k1", 1, "k2", 2, "k3", 3, "k4", 4, "k5", 5, "k6", 6, \
"k7", 7, "k8", 8); \
}, \
NullSetup, NullTeardown);
void RunNoTraceBenchmarks() {
RunAndMeasure(
"TRACE_ENABLED", "NTRACE", [] { ZX_DEBUG_ASSERT(!TRACE_ENABLED()); }, NullSetup,
NullTeardown);
RunAndMeasure(
"TRACE_CATEGORY_ENABLED", "NTRACE",
[] { ZX_DEBUG_ASSERT(!TRACE_CATEGORY_ENABLED("+enabled")); }, NullSetup, NullTeardown);
NTRACE_DURATION_TEST(TRACE_DURATION_BEGIN);
NTRACE_DURATION_TEST(TRACE_DURATION);
RunAndMeasure(
"TRACE_VTHREAD_DURATION_BEGIN macro with 0 arguments", "NTRACE",
[] { TRACE_VTHREAD_DURATION_BEGIN("+enabled", "name", "vthread", 1, zx_ticks_get()); },
NullSetup, NullTeardown);
}