1 // Copyright 2013 The Chromium 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.
5 #include "testing/perf/perf_test.h"
9 #include "base/logging.h"
10 #include "base/strings/string_number_conversions.h"
11 #include "base/strings/stringprintf.h"
15 std::string ResultsToString(const std::string& measurement,
16 const std::string& modifier,
17 const std::string& trace,
18 const std::string& values,
19 const std::string& prefix,
20 const std::string& suffix,
21 const std::string& units,
23 // <*>RESULT <graph_name>: <trace_name>= <value> <units>
24 // <*>RESULT <graph_name>: <trace_name>= {<mean>, <std deviation>} <units>
25 // <*>RESULT <graph_name>: <trace_name>= [<value>,value,value,...,] <units>
26 return base::StringPrintf("%sRESULT %s%s: %s= %s%s%s %s\n",
27 important ? "*" : "", measurement.c_str(), modifier.c_str(),
28 trace.c_str(), prefix.c_str(), values.c_str(), suffix.c_str(),
32 void PrintResultsImpl(const std::string& measurement,
33 const std::string& modifier,
34 const std::string& trace,
35 const std::string& values,
36 const std::string& prefix,
37 const std::string& suffix,
38 const std::string& units,
41 printf("%s", ResultsToString(measurement, modifier, trace, values,
42 prefix, suffix, units, important).c_str());
50 void PrintResult(const std::string& measurement,
51 const std::string& modifier,
52 const std::string& trace,
54 const std::string& units,
56 PrintResultsImpl(measurement,
59 base::UintToString(static_cast<unsigned int>(value)),
66 void AppendResult(std::string& output,
67 const std::string& measurement,
68 const std::string& modifier,
69 const std::string& trace,
71 const std::string& units,
73 output += ResultsToString(
77 base::UintToString(static_cast<unsigned int>(value)),
84 void PrintResult(const std::string& measurement,
85 const std::string& modifier,
86 const std::string& trace,
87 const std::string& value,
88 const std::string& units,
90 PrintResultsImpl(measurement,
100 void AppendResult(std::string& output,
101 const std::string& measurement,
102 const std::string& modifier,
103 const std::string& trace,
104 const std::string& value,
105 const std::string& units,
107 output += ResultsToString(measurement,
117 void PrintResultMeanAndError(const std::string& measurement,
118 const std::string& modifier,
119 const std::string& trace,
120 const std::string& mean_and_error,
121 const std::string& units,
123 PrintResultsImpl(measurement, modifier, trace, mean_and_error,
124 "{", "}", units, important);
127 void AppendResultMeanAndError(std::string& output,
128 const std::string& measurement,
129 const std::string& modifier,
130 const std::string& trace,
131 const std::string& mean_and_error,
132 const std::string& units,
134 output += ResultsToString(measurement, modifier, trace, mean_and_error,
135 "{", "}", units, important);
138 void PrintResultList(const std::string& measurement,
139 const std::string& modifier,
140 const std::string& trace,
141 const std::string& values,
142 const std::string& units,
144 PrintResultsImpl(measurement, modifier, trace, values,
145 "[", "]", units, important);
148 void AppendResultList(std::string& output,
149 const std::string& measurement,
150 const std::string& modifier,
151 const std::string& trace,
152 const std::string& values,
153 const std::string& units,
155 output += ResultsToString(measurement, modifier, trace, values,
156 "[", "]", units, important);
159 void PrintSystemCommitCharge(const std::string& test_name,
162 PrintSystemCommitCharge(stdout, test_name, charge, important);
165 void PrintSystemCommitCharge(FILE* target,
166 const std::string& test_name,
169 fprintf(target, "%s", SystemCommitChargeToString(test_name, charge,
173 std::string SystemCommitChargeToString(const std::string& test_name,
176 std::string trace_name(test_name);
188 } // namespace perf_test