Home | History | Annotate | Download | only in testsupport
      1 /*
      2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 // A stripped-down version of Chromium's chrome/test/perf/perf_test.h.
     12 // Several functions have been removed; the prototypes of the remainder have
     13 // not been changed.
     14 
     15 #ifndef WEBRTC_TEST_TESTSUPPORT_PERF_TEST_H_
     16 #define WEBRTC_TEST_TESTSUPPORT_PERF_TEST_H_
     17 
     18 #include <string>
     19 
     20 namespace webrtc {
     21 namespace test {
     22 
     23 // Prints numerical information to stdout in a controlled format, for
     24 // post-processing. |measurement| is a description of the quantity being
     25 // measured, e.g. "vm_peak"; |modifier| is provided as a convenience and
     26 // will be appended directly to the name of the |measurement|, e.g.
     27 // "_browser"; |trace| is a description of the particular data point, e.g.
     28 // "reference"; |value| is the measured value; and |units| is a description
     29 // of the units of measure, e.g. "bytes". If |important| is true, the output
     30 // line will be specially marked, to notify the post-processor. The strings
     31 // may be empty.  They should not contain any colons (:) or equals signs (=).
     32 // A typical post-processing step would be to produce graphs of the data
     33 // produced for various builds, using the combined |measurement| + |modifier|
     34 // string to specify a particular graph and the |trace| to identify a trace
     35 // (i.e., data series) on that graph.
     36 void PrintResult(const std::string& measurement,
     37                  const std::string& modifier,
     38                  const std::string& trace,
     39                  size_t value,
     40                  const std::string& units,
     41                  bool important);
     42 
     43 void AppendResult(std::string& output,
     44                   const std::string& measurement,
     45                   const std::string& modifier,
     46                   const std::string& trace,
     47                   size_t value,
     48                   const std::string& units,
     49                   bool important);
     50 
     51 // Like the above version of PrintResult(), but takes a std::string value
     52 // instead of a size_t.
     53 void PrintResult(const std::string& measurement,
     54                  const std::string& modifier,
     55                  const std::string& trace,
     56                  const std::string& value,
     57                  const std::string& units,
     58                  bool important);
     59 
     60 void AppendResult(std::string& output,
     61                   const std::string& measurement,
     62                   const std::string& modifier,
     63                   const std::string& trace,
     64                   const std::string& value,
     65                   const std::string& units,
     66                   bool important);
     67 
     68 // Like PrintResult(), but prints a (mean, standard deviation) result pair.
     69 // The |<values>| should be two comma-separated numbers, the mean and
     70 // standard deviation (or other error metric) of the measurement.
     71 void PrintResultMeanAndError(const std::string& measurement,
     72                              const std::string& modifier,
     73                              const std::string& trace,
     74                              const std::string& mean_and_error,
     75                              const std::string& units,
     76                              bool important);
     77 
     78 void AppendResultMeanAndError(std::string& output,
     79                               const std::string& measurement,
     80                               const std::string& modifier,
     81                               const std::string& trace,
     82                               const std::string& mean_and_error,
     83                               const std::string& units,
     84                               bool important);
     85 
     86 // Like PrintResult(), but prints an entire list of results. The |values|
     87 // will generally be a list of comma-separated numbers. A typical
     88 // post-processing step might produce plots of their mean and standard
     89 // deviation.
     90 void PrintResultList(const std::string& measurement,
     91                      const std::string& modifier,
     92                      const std::string& trace,
     93                      const std::string& values,
     94                      const std::string& units,
     95                      bool important);
     96 
     97 void AppendResultList(std::string& output,
     98                       const std::string& measurement,
     99                       const std::string& modifier,
    100                       const std::string& trace,
    101                       const std::string& values,
    102                       const std::string& units,
    103                       bool important);
    104 
    105 // Prints memory commit charge stats for use by perf graphs.
    106 void PrintSystemCommitCharge(const std::string& test_name,
    107                              size_t charge,
    108                              bool important);
    109 
    110 void PrintSystemCommitCharge(FILE* target,
    111                              const std::string& test_name,
    112                              size_t charge,
    113                              bool important);
    114 
    115 std::string SystemCommitChargeToString(const std::string& test_name,
    116                                        size_t charge,
    117                                        bool important);
    118 
    119 }  // namespace test
    120 }  // namespace webrtc
    121 
    122 #endif  // WEBRTC_TEST_TESTSUPPORT_PERF_TEST_H_
    123