| Index: testing/perf/scoped_histogram_result_printer_unittest.cc
|
| diff --git a/testing/perf/scoped_histogram_result_printer_unittest.cc b/testing/perf/scoped_histogram_result_printer_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b84adae88beb6cc34d87d44fac80aa706f6a8b35
|
| --- /dev/null
|
| +++ b/testing/perf/scoped_histogram_result_printer_unittest.cc
|
| @@ -0,0 +1,90 @@
|
| +// Copyright (c) 2016 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/scoped_histogram_result_printer.h"
|
| +
|
| +#include "base/metrics/histogram_macros.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +#include "testing/gtest/include/gtest/gtest-spi.h"
|
| +
|
| +namespace {
|
| +using testing::_;
|
| +
|
| +const char kFakeHistogram[] = "FakeHistogramName";
|
| +const char kFakeMeasurement[] = "FakeMeasurement";
|
| +
|
| +struct MockedPrinter {
|
| + MOCK_METHOD2(PrintHistogram,
|
| + void(const base::HistogramSamples&, const std::string&));
|
| + perf_test::HistogramPrinter GetCallback() {
|
| + return base::Bind(&MockedPrinter::PrintHistogram, base::Unretained(this));
|
| + }
|
| +};
|
| +
|
| +void StrictIsNotFoundTest() {
|
| + MockedPrinter perf_printer;
|
| + EXPECT_CALL(perf_printer, PrintHistogram(_, _)).Times(0);
|
| +
|
| + perf_test::ScopedHistogramResultPrinter scoped_printer(
|
| + perf_printer.GetCallback());
|
| +
|
| + scoped_printer.AddHistogramStrict(kFakeHistogram, kFakeMeasurement);
|
| +}
|
| +
|
| +void NothingIsAddedToStrictTest() {
|
| + MockedPrinter perf_printer;
|
| + EXPECT_CALL(perf_printer, PrintHistogram(_, _)).Times(0);
|
| +
|
| + { SCOPED_UMA_HISTOGRAM_TIMER(kFakeHistogram); }
|
| +
|
| + perf_test::ScopedHistogramResultPrinter scoped_printer(
|
| + perf_printer.GetCallback());
|
| +
|
| + scoped_printer.AddHistogramStrict(kFakeHistogram, kFakeMeasurement);
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| +namespace perf_test {
|
| +
|
| +class ScopedHistogramResultPrinterTest : public testing::Test {};
|
| +
|
| +TEST_F(ScopedHistogramResultPrinterTest, StrictIsNotFound) {
|
| + EXPECT_NONFATAL_FAILURE(StrictIsNotFoundTest(), " wasn't found");
|
| +}
|
| +
|
| +TEST_F(ScopedHistogramResultPrinterTest, StrictIsFound) {
|
| + MockedPrinter perf_printer;
|
| + EXPECT_CALL(perf_printer, PrintHistogram(_, _));
|
| +
|
| + ScopedHistogramResultPrinter scoped_printer(perf_printer.GetCallback());
|
| +
|
| + scoped_printer.AddHistogramStrict(kFakeHistogram, kFakeMeasurement);
|
| + SCOPED_UMA_HISTOGRAM_TIMER(kFakeHistogram);
|
| +}
|
| +
|
| +TEST_F(ScopedHistogramResultPrinterTest, NothingIsAddedToStrict) {
|
| + EXPECT_NONFATAL_FAILURE(NothingIsAddedToStrictTest(),
|
| + "Nothing was added in ");
|
| +}
|
| +
|
| +TEST_F(ScopedHistogramResultPrinterTest, NiceIsNotFound) {
|
| + MockedPrinter perf_printer;
|
| + EXPECT_CALL(perf_printer, PrintHistogram(_, _)).Times(0);
|
| +
|
| + ScopedHistogramResultPrinter scoped_printer(perf_printer.GetCallback());
|
| +
|
| + scoped_printer.AddHistogramNice(kFakeHistogram, kFakeMeasurement);
|
| +}
|
| +
|
| +TEST_F(ScopedHistogramResultPrinterTest, NothingIsAddedToNice) {
|
| + MockedPrinter perf_printer;
|
| + EXPECT_CALL(perf_printer, PrintHistogram(_, _)).Times(0);
|
| +
|
| + { SCOPED_UMA_HISTOGRAM_TIMER(kFakeHistogram); }
|
| + ScopedHistogramResultPrinter scoped_printer(perf_printer.GetCallback());
|
| + scoped_printer.AddHistogramNice(kFakeHistogram, kFakeMeasurement);
|
| +}
|
| +
|
| +} // namespace perf_test
|
|
|