Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(746)

Unified Diff: testing/perf/scoped_histogram_result_printer_unittest.cc

Issue 2300323003: Adding performance tests for HQP that represent importance of optimising HistoryItemsForTerms method (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« chrome/test/base/ui_test_utils.cc ('K') | « testing/perf/scoped_histogram_result_printer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698