blob: 3d6a2abd6b26ba69c18e2be3a3d35000857ff58c [file] [log] [blame]
// Copyright 2018 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.
#pragma once
#include <fbl/vector.h>
#include <perftest/perftest.h>
namespace perftest {
namespace internal {
// Definitions used by the perf test runner. These are in a header file so
// that the perf test runner can be tested by unit tests.
struct NamedTest {
fbl::String name;
fbl::Function<TestFunc> test_func;
};
typedef fbl::Vector<NamedTest> TestList;
bool RunTests(const char* test_suite, TestList* test_list,
uint32_t run_count, const char* regex_string,
FILE* log_stream, ResultsSet* results_set);
struct CommandArgs {
const char* output_filename = nullptr;
// Note that this default matches any string.
const char* filter_regex = "";
uint32_t run_count = 1000;
bool enable_tracing = false;
double startup_delay_seconds = 0;
};
void ParseCommandArgs(int argc, char** argv, CommandArgs* dest);
} // namespace internal
} // namespace perftest