blob: 0b99a6d864329d521042d0054d4943d19040480f [file] [log] [blame]
// Copyright 2018 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 "components/scheduling_metrics/total_duration_metric_reporter.h"
#include "base/test/metrics/histogram_tester.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace scheduling_metrics {
TEST(TotalDurationMetricReporterTest, Test) {
base::HistogramTester histogram_tester;
TotalDurationMetricReporter metric_reporter("TestHistogram.Positive",
"TestHistogram.Negative");
metric_reporter.RecordAdditionalDuration(base::TimeDelta::FromSeconds(1));
metric_reporter.RecordAdditionalDuration(base::TimeDelta::FromSeconds(2));
metric_reporter.RecordAdditionalDuration(base::TimeDelta::FromSeconds(5));
metric_reporter.Reset();
metric_reporter.RecordAdditionalDuration(base::TimeDelta::FromSeconds(10));
std::map<base::Histogram::Sample, base::HistogramBase::Count> result;
for (const base::Bucket& bucket :
histogram_tester.GetAllSamples("TestHistogram.Positive")) {
result[bucket.min] += bucket.count;
}
for (const base::Bucket& bucket :
histogram_tester.GetAllSamples("TestHistogram.Negative")) {
result[bucket.min] -= bucket.count;
}
// 1 and 3 correspond to "reverted" values.
EXPECT_THAT(result, testing::UnorderedElementsAre(
std::make_pair(1, 0), std::make_pair(3, 0),
std::make_pair(8, 1), std::make_pair(10, 1)));
}
} // namespace scheduling_metrics