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

Unified Diff: tools/telemetry/telemetry/results/html_page_measurement_results_unittest.py

Issue 423383004: Revert of Move Html and BuildbotPageMeasurementResults to {Html,Buildbot}OutputFormatter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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: tools/telemetry/telemetry/results/html_page_measurement_results_unittest.py
diff --git a/tools/telemetry/telemetry/results/html_page_measurement_results_unittest.py b/tools/telemetry/telemetry/results/html_page_measurement_results_unittest.py
new file mode 100644
index 0000000000000000000000000000000000000000..953ffbad48293e30a2e9b36c680a88b517f2f9e8
--- /dev/null
+++ b/tools/telemetry/telemetry/results/html_page_measurement_results_unittest.py
@@ -0,0 +1,247 @@
+# Copyright 2014 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.
+import os
+import StringIO
+import unittest
+
+from telemetry.page import page_set
+from telemetry.results import html_page_measurement_results
+from telemetry.value import scalar
+
+
+def _MakePageSet():
+ ps = page_set.PageSet(file_path=os.path.dirname(__file__))
+ ps.AddPageWithDefaultRunNavigate('http://www.foo.com/')
+ ps.AddPageWithDefaultRunNavigate('http://www.bar.com/')
+ ps.AddPageWithDefaultRunNavigate('http://www.baz.com/')
+ return ps
+
+
+class DeterministicHtmlPageMeasurementResults(
+ html_page_measurement_results.HtmlPageMeasurementResults):
+ def _GetBuildTime(self):
+ return 'build_time'
+
+ def _GetRevision(self):
+ return 'revision'
+
+
+# Wrap string IO with a .name property so that it behaves more like a file.
+class StringIOFile(StringIO.StringIO):
+ name = 'fake_output_file'
+
+
+class HtmlPageMeasurementResultsTest(unittest.TestCase):
+
+ def test_basic_summary(self):
+ test_page_set = _MakePageSet()
+ output_file = StringIOFile()
+
+ # Run the first time and verify the results are written to the HTML file.
+ results = DeterministicHtmlPageMeasurementResults(
+ output_file, 'test_name', False, False, 'browser_type')
+ results.StartTest(test_page_set.pages[0])
+ results.AddValue(scalar.ScalarValue(
+ test_page_set.pages[0], 'a', 'seconds', 3))
+ results.AddSuccess(test_page_set.pages[0])
+ results.StopTest(test_page_set.pages[0])
+
+ results.StartTest(test_page_set.pages[1])
+ results.AddValue(scalar.ScalarValue(
+ test_page_set.pages[1], 'a', 'seconds', 7))
+ results.AddSuccess(test_page_set.pages[1])
+ results.StopTest(test_page_set.pages[1])
+
+ results.PrintSummary()
+ results.GetResults()
+ expected = {
+ "platform": "browser_type",
+ "buildTime": "build_time",
+ "label": None,
+ "tests": {
+ "test_name": {
+ "metrics": {
+ "a": {
+ "current": [3, 7],
+ "units": "seconds",
+ "important": True
+ },
+ "telemetry_page_measurement_results.num_failed": {
+ "current": [0],
+ "units": "count",
+ "important": False
+ },
+ "a.http://www.bar.com/": {
+ "current": [7],
+ "units": "seconds",
+ "important": False
+ },
+ "telemetry_page_measurement_results.num_errored": {
+ "current": [0],
+ "units": "count",
+ "important": False
+ },
+ "a.http://www.foo.com/": {
+ "current": [3],
+ "units": "seconds",
+ "important": False
+ }
+ }
+ }
+ },
+ "revision": "revision"
+ }
+ self.assertEquals(expected, results.GetResults())
+
+ # Run the second time and verify the results are appended to the HTML file.
+ output_file.seek(0)
+ results = DeterministicHtmlPageMeasurementResults(
+ output_file, 'test_name', False, False, 'browser_type')
+ results.StartTest(test_page_set.pages[0])
+ results.AddValue(scalar.ScalarValue(
+ test_page_set.pages[0], 'a', 'seconds', 4))
+ results.AddSuccess(test_page_set.pages[0])
+ results.StopTest(test_page_set.pages[0])
+
+ results.StartTest(test_page_set.pages[1])
+ results.AddValue(scalar.ScalarValue(
+ test_page_set.pages[1], 'a', 'seconds', 8))
+ results.AddSuccess(test_page_set.pages[1])
+ results.StopTest(test_page_set.pages[1])
+
+ results.PrintSummary()
+ expected = [
+ {
+ "platform": "browser_type",
+ "buildTime": "build_time",
+ "label": None,
+ "tests": {
+ "test_name": {
+ "metrics": {
+ "a": {
+ "current": [3, 7],
+ "units": "seconds",
+ "important": True
+ },
+ "telemetry_page_measurement_results.num_failed": {
+ "current": [0],
+ "units": "count",
+ "important": False
+ },
+ "a.http://www.bar.com/": {
+ "current": [7],
+ "units": "seconds",
+ "important": False
+ },
+ "telemetry_page_measurement_results.num_errored": {
+ "current": [0],
+ "units": "count",
+ "important": False
+ },
+ "a.http://www.foo.com/": {
+ "current": [3],
+ "units": "seconds",
+ "important": False
+ }
+ }
+ }
+ },
+ "revision": "revision"
+ },
+ {
+ "platform": "browser_type",
+ "buildTime": "build_time",
+ "label": None,
+ "tests": {
+ "test_name": {
+ "metrics": {
+ "a": {
+ "current": [4, 8],
+ "units": "seconds",
+ "important": True
+ },
+ "telemetry_page_measurement_results.num_failed": {
+ "current": [0],
+ "units": "count",
+ "important": False,
+ },
+ "a.http://www.bar.com/": {
+ "current": [8],
+ "units": "seconds",
+ "important": False
+ },
+ "telemetry_page_measurement_results.num_errored": {
+ "current": [0],
+ "units": "count",
+ "important": False
+ },
+ "a.http://www.foo.com/": {
+ "current": [4],
+ "units": "seconds",
+ "important": False
+ }
+ }
+ }
+ },
+ "revision": "revision"
+ }]
+ self.assertEquals(expected, results.GetCombinedResults())
+ last_output_len = len(output_file.getvalue())
+
+ # Now reset the results and verify the old ones are gone.
+ output_file.seek(0)
+ results = DeterministicHtmlPageMeasurementResults(
+ output_file, 'test_name', True, False, 'browser_type')
+ results.StartTest(test_page_set.pages[0])
+ results.AddValue(scalar.ScalarValue(
+ test_page_set.pages[0], 'a', 'seconds', 5))
+ results.AddSuccess(test_page_set.pages[0])
+ results.StopTest(test_page_set.pages[0])
+
+ results.StartTest(test_page_set.pages[1])
+ results.AddValue(scalar.ScalarValue(
+ test_page_set.pages[1], 'a', 'seconds', 9))
+ results.AddSuccess(test_page_set.pages[1])
+ results.StopTest(test_page_set.pages[1])
+
+ results.PrintSummary()
+ expected = [{
+ "platform": "browser_type",
+ "buildTime": "build_time",
+ "label": None,
+ "tests": {
+ "test_name": {
+ "metrics": {
+ "a": {
+ "current": [5, 9],
+ "units": "seconds",
+ "important": True
+ },
+ "telemetry_page_measurement_results.num_failed": {
+ "current": [0],
+ "units": "count",
+ "important": False
+ },
+ "a.http://www.bar.com/": {
+ "current": [9],
+ "units": "seconds",
+ "important": False
+ },
+ "telemetry_page_measurement_results.num_errored": {
+ "current": [0],
+ "units": "count",
+ "important": False
+ },
+ "a.http://www.foo.com/": {
+ "current": [5],
+ "units": "seconds",
+ "important": False
+ }
+ }
+ }
+ },
+ "revision": "revision"
+ }]
+ self.assertEquals(expected, results.GetCombinedResults())
+ self.assertTrue(len(output_file.getvalue()) < last_output_len)

Powered by Google App Engine
This is Rietveld 408576698