blob: 272e6ca171056e7d98f41f3b015e4fa0374e8e12 [file] [log] [blame]
// Copyright 2019 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_result_reporter.h"
#include "base/logging.h"
#include "testing/perf/perf_test.h"
namespace perf_test {
PerfResultReporter::PerfResultReporter(const std::string& metric_basename,
const std::string& story_name)
: metric_basename_(metric_basename), story_name_(story_name) {}
PerfResultReporter::~PerfResultReporter() = default;
void PerfResultReporter::RegisterFyiMetric(const std::string& metric_suffix,
const std::string& units) {
RegisterMetric(metric_suffix, units, false);
}
void PerfResultReporter::RegisterImportantMetric(
const std::string& metric_suffix,
const std::string& units) {
RegisterMetric(metric_suffix, units, true);
}
void PerfResultReporter::AddResult(const std::string& metric_suffix,
size_t value) {
auto iter = metric_map_.find(metric_suffix);
CHECK(iter != metric_map_.end());
PrintResult(metric_basename_, metric_suffix, story_name_, value,
iter->second.units, iter->second.important);
}
void PerfResultReporter::AddResult(const std::string& metric_suffix,
double value) {
auto iter = metric_map_.find(metric_suffix);
CHECK(iter != metric_map_.end());
PrintResult(metric_basename_, metric_suffix, story_name_, value,
iter->second.units, iter->second.important);
}
void PerfResultReporter::AddResult(const std::string& metric_suffix,
const std::string& value) {
auto iter = metric_map_.find(metric_suffix);
CHECK(iter != metric_map_.end());
PrintResult(metric_basename_, metric_suffix, story_name_, value,
iter->second.units, iter->second.important);
}
bool PerfResultReporter::GetMetricInfo(const std::string& metric_suffix,
MetricInfo* out) {
auto iter = metric_map_.find(metric_suffix);
if (iter == metric_map_.end()) {
return false;
}
*out = iter->second;
return true;
}
void PerfResultReporter::RegisterMetric(const std::string& metric_suffix,
const std::string& units,
bool important) {
CHECK(metric_map_.count(metric_suffix) == 0);
metric_map_.insert({metric_suffix, {units, important}});
}
} // namespace perf_test