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

Unified Diff: tools/telemetry/telemetry/value/chart_json_unittest.py

Issue 439613003: Add Chart JSON processing to Telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address most of Nat's comments Created 6 years, 4 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/value/chart_json_unittest.py
diff --git a/tools/telemetry/telemetry/value/chart_json_unittest.py b/tools/telemetry/telemetry/value/chart_json_unittest.py
new file mode 100644
index 0000000000000000000000000000000000000000..b557ad2437f29e8e9445e6b3d7a54e462b8d1317
--- /dev/null
+++ b/tools/telemetry/telemetry/value/chart_json_unittest.py
@@ -0,0 +1,128 @@
+# 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 unittest
+import json
+
+from telemetry import benchmark
+from telemetry.results import page_test_results
+from telemetry.page import page_set
+from telemetry.value import chart_json
+from telemetry.value import scalar
+from telemetry.value import list_of_scalar_values
+
+
+def _MakePageSet():
+ ps = page_set.PageSet(file_path=os.path.dirname(__file__))
+ ps.AddPageWithDefaultRunNavigate('http://www.foo.com/')
+ ps.AddPageWithDefaultRunNavigate('http://www.bar.com/')
+ return ps
+
+class ChartJsonTest(unittest.TestCase):
+ def setUp(self):
+ self._page_set = _MakePageSet()
+ self._metadata = benchmark.BenchmarkMetadata('test_name')
+
+ def testAsChartDictSerializable(self):
+ results = page_test_results.PageTestResults()
+
+ results.WillRunPage(self._page_set[0])
+ v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3)
+ results.AddValue(v0)
+ results.DidRunPage(self._page_set[0])
+ page_specific_values = results.all_page_specific_values
+ summary_values = results.all_summary_values
+
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values,
+ self._metadata)
+ json.dumps(d)
+
+ def testAsChartDictBaseKeys(self):
+ results = page_test_results.PageTestResults()
+
+ page_specific_values = results.all_page_specific_values
+ summary_values = results.all_summary_values
+
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values,
+ self._metadata)
+
+ self.assertEquals(d['format_version'], '0.1')
+ self.assertEquals(d['test_name'], 'test_name')
+
+ def testAsChartDictPageSpecificValuesSamePage(self):
+ results = page_test_results.PageTestResults()
+
+ results.WillRunPage(self._page_set[0])
+ v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3)
nednguyen 2014/08/13 02:17:03 Please don't use the results.current_page pattern
eakuefner 2014/08/15 22:47:32 Done.
+ results.AddValue(v0)
+ results.DidRunPage(self._page_set[0])
+
+ results.WillRunPage(self._page_set[0])
+ v1 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 4)
+ results.AddValue(v1)
+ results.DidRunPage(self._page_set[0])
+ page_specific_values = results.all_page_specific_values
+ summary_values = results.all_summary_values
+
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values,
+ self._metadata)
+
+ self.assertTrue('foo' in d['charts'])
+ self.assertTrue('http://www.foo.com/' in d['charts']['foo']['traces'])
+
+ def testAsChartDictPageSpecificValuesAndComputedSummary(self):
+ results = page_test_results.PageTestResults()
+
+ results.WillRunPage(self._page_set[0])
+ v0 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 3)
+ results.AddValue(v0)
+ results.DidRunPage(self._page_set[0])
+
+ results.WillRunPage(self._page_set[1])
+ v1 = scalar.ScalarValue(results.current_page, 'foo', 'seconds', 4)
+ results.AddValue(v1)
+ results.DidRunPage(self._page_set[1])
+ page_specific_values = results.all_page_specific_values
+ summary_values = results.all_summary_values
+
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values,
+ self._metadata)
+
+ self.assertTrue('foo' in d['charts'])
+ self.assertTrue('http://www.foo.com/' in d['charts']['foo']['traces'])
+ self.assertTrue('http://www.bar.com/' in d['charts']['foo']['traces'])
+ self.assertTrue('overall' in d['charts']['foo']['traces'])
+
+ def testAsChartDictSummaryValueWithTraceName(self):
+ results = page_test_results.PageTestResults()
+
+ results.WillRunPage(self._page_set[0])
+ results.DidRunPage(self._page_set[0])
+ v0 = list_of_scalar_values.ListOfScalarValues(None, 'foo.bar', 'seconds',
+ [3, 4])
+ results.AddSummaryValue(v0)
+ page_specific_values = results.all_page_specific_values
+ summary_values = results.all_summary_values
+
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values,
+ self._metadata)
+
+ self.assertTrue('bar' in d['charts']['foo']['traces'])
+
+ def testAsChartDictSummaryValueWithoutTraceName(self):
+ results = page_test_results.PageTestResults()
+
+ results.WillRunPage(self._page_set[0])
+ results.DidRunPage(self._page_set[0])
+ v0 = list_of_scalar_values.ListOfScalarValues(None, 'foo', 'seconds',
+ [3, 4])
+ results.AddSummaryValue(v0)
+ page_specific_values = results.all_page_specific_values
+ summary_values = results.all_summary_values
+
+ d = chart_json.ResultsAsChartDict(page_specific_values, summary_values,
+ self._metadata)
+
+ self.assertTrue('overall' in d['charts']['foo']['traces'])
chrishenry - DO NOT USE 2014/08/13 05:12:02 I don't see any tests that test the actual values
eakuefner 2014/08/15 22:47:32 Added a smoke test to deal with this.

Powered by Google App Engine
This is Rietveld 408576698