blob: 8e50441d68ccd5053bdc01b035e3057dc2a957fc [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MOJO_PUBLIC_C_TEST_SUPPORT_TEST_SUPPORT_H_
#define MOJO_PUBLIC_C_TEST_SUPPORT_TEST_SUPPORT_H_
// Note: This header should be compilable as C.
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
// |sub_test_name| is optional. If not null, it usually describes one particular
// configuration of the test. For example, if |test_name| is "TestPacketRate",
// |sub_test_name| could be "100BytesPerPacket".
// When the perf data is visualized by the performance dashboard, data with
// different |sub_test_name|s (but the same |test_name|) are depicted as
// different traces on the same chart.
void MojoTestSupportLogPerfResult(
const char* test_name,
const char* sub_test_name,
double value,
const char* units);
// Opens a "/"-delimited file path relative to the source root.
FILE* MojoTestSupportOpenSourceRootRelativeFile(
const char* source_root_relative_path);
// Enumerates a "/"-delimited directory path relative to the source root.
// Returns only regular files. The return value is a heap-allocated array of
// heap-allocated strings. Each must be free'd separately.
//
// The return value is built like so:
//
// char** rv = (char**) calloc(N + 1, sizeof(char*));
// rv[0] = strdup("a");
// rv[1] = strdup("b");
// rv[2] = strdup("c");
// ...
// rv[N] = NULL;
//
char** MojoTestSupportEnumerateSourceRootRelativeDirectory(
const char* source_root_relative_path);
#ifdef __cplusplus
} // extern "C"
#endif
#endif // MOJO_PUBLIC_C_TEST_SUPPORT_TEST_SUPPORT_H_