123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- // Copyright 2013 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.
- #include "testing/perf/perf_test.h"
- #include <stdio.h>
- #include "base/strings/string_number_conversions.h"
- #include "base/strings/stringprintf.h"
- namespace {
- std::string ResultsToString(const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- const std::string& values,
- const std::string& prefix,
- const std::string& suffix,
- const std::string& units,
- bool important) {
- // <*>RESULT <graph_name>: <trace_name>= <value> <units>
- // <*>RESULT <graph_name>: <trace_name>= {<mean>, <std deviation>} <units>
- // <*>RESULT <graph_name>: <trace_name>= [<value>,value,value,...,] <units>
- return base::StringPrintf("%sRESULT %s%s: %s= %s%s%s %s\n",
- important ? "*" : "", measurement.c_str(), modifier.c_str(),
- trace.c_str(), prefix.c_str(), values.c_str(), suffix.c_str(),
- units.c_str());
- }
- void PrintResultsImpl(const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- const std::string& values,
- const std::string& prefix,
- const std::string& suffix,
- const std::string& units,
- bool important) {
- fflush(stdout);
- printf("%s", ResultsToString(measurement, modifier, trace, values,
- prefix, suffix, units, important).c_str());
- fflush(stdout);
- }
- } // namespace
- namespace perf_test {
- void PrintResult(const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- size_t value,
- const std::string& units,
- bool important) {
- PrintResultsImpl(measurement, modifier, trace, base::NumberToString(value),
- std::string(), std::string(), units, important);
- }
- void PrintResult(const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- double value,
- const std::string& units,
- bool important) {
- PrintResultsImpl(measurement, modifier, trace, base::NumberToString(value),
- std::string(), std::string(), units, important);
- }
- void AppendResult(std::string& output,
- const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- size_t value,
- const std::string& units,
- bool important) {
- output +=
- ResultsToString(measurement, modifier, trace, base::NumberToString(value),
- std::string(), std::string(), units, important);
- }
- void PrintResult(const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- const std::string& value,
- const std::string& units,
- bool important) {
- PrintResultsImpl(measurement,
- modifier,
- trace,
- value,
- std::string(),
- std::string(),
- units,
- important);
- }
- void AppendResult(std::string& output,
- const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- const std::string& value,
- const std::string& units,
- bool important) {
- output += ResultsToString(measurement,
- modifier,
- trace,
- value,
- std::string(),
- std::string(),
- units,
- important);
- }
- void PrintResultMeanAndError(const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- const std::string& mean_and_error,
- const std::string& units,
- bool important) {
- PrintResultsImpl(measurement, modifier, trace, mean_and_error,
- "{", "}", units, important);
- }
- void AppendResultMeanAndError(std::string& output,
- const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- const std::string& mean_and_error,
- const std::string& units,
- bool important) {
- output += ResultsToString(measurement, modifier, trace, mean_and_error,
- "{", "}", units, important);
- }
- void PrintResultList(const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- const std::string& values,
- const std::string& units,
- bool important) {
- PrintResultsImpl(measurement, modifier, trace, values,
- "[", "]", units, important);
- }
- void AppendResultList(std::string& output,
- const std::string& measurement,
- const std::string& modifier,
- const std::string& trace,
- const std::string& values,
- const std::string& units,
- bool important) {
- output += ResultsToString(measurement, modifier, trace, values,
- "[", "]", units, important);
- }
- void PrintSystemCommitCharge(const std::string& test_name,
- size_t charge,
- bool important) {
- PrintSystemCommitCharge(stdout, test_name, charge, important);
- }
- void PrintSystemCommitCharge(FILE* target,
- const std::string& test_name,
- size_t charge,
- bool important) {
- fprintf(target, "%s", SystemCommitChargeToString(test_name, charge,
- important).c_str());
- }
- std::string SystemCommitChargeToString(const std::string& test_name,
- size_t charge,
- bool important) {
- std::string trace_name(test_name);
- std::string output;
- AppendResult(output,
- "commit_charge",
- std::string(),
- "cc" + trace_name,
- charge,
- "kb",
- important);
- return output;
- }
- } // namespace perf_test
|