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

Side by Side Diff: mojo/devtools/common/devtoolslib/perf_dashboard_unittest.py

Issue 1412113003: mojo_benchmark: improve recording the chart data for perf dashboard. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Address Etienne's comments. Created 5 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « mojo/devtools/common/devtoolslib/perf_dashboard.py ('k') | mojo/devtools/common/mojo_benchmark » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Tests for the Chromium Performance Dashboard data format implementation.""" 5 """Tests for the Chromium Performance Dashboard data format implementation."""
6 6
7 import imp 7 import imp
8 import json 8 import json
9 import os.path 9 import os.path
10 import sys 10 import sys
11 import unittest 11 import unittest
12 12
13 try: 13 try:
14 imp.find_module("devtoolslib") 14 imp.find_module("devtoolslib")
15 except ImportError: 15 except ImportError:
16 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) 16 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
17 17
18 from devtoolslib.perf_dashboard import ChartDataRecorder 18 from devtoolslib.perf_dashboard import ChartDataRecorder
19 19
20
20 class ChartDataRecorderTest(unittest.TestCase): 21 class ChartDataRecorderTest(unittest.TestCase):
21 """Tests the chart data recorder.""" 22 """Tests the chart data recorder."""
22 23
23 def test_empty(self): 24 def test_empty(self):
24 """Tests chart data with no charts.""" 25 """Tests chart data with no charts."""
25 recorder = ChartDataRecorder() 26 recorder = ChartDataRecorder('benchmark')
26 result = json.loads(recorder.get_json()) 27 result = json.loads(recorder.get_json())
27 self.assertEquals(0, len(result)) 28 self.assertEquals({
29 'format_version': '1.0',
30 'benchmark_name': 'benchmark',
31 'charts': {}}, result)
28 32
29 def test_one_chart(self): 33 def test_one_chart(self):
30 """Tests chart data with two samples in one chart.""" 34 """Tests chart data with two samples in one chart."""
31 recorder = ChartDataRecorder() 35 recorder = ChartDataRecorder('benchmark')
32 recorder.record_scalar('chart', 'val1', 'ms', 1) 36 recorder.record_scalar('chart', 'val1', 'ms', 1)
33 recorder.record_scalar('chart', 'val2', 'ms', 2) 37 recorder.record_scalar('chart', 'val2', 'ms', 2)
34 38
35 result = json.loads(recorder.get_json()) 39 result = json.loads(recorder.get_json())
36 self.assertEquals(1, len(result)) 40 self.assertEquals('1.0', result['format_version'])
37 self.assertEquals(2, len(result['chart'])) 41 self.assertEquals('benchmark', result['benchmark_name'])
42
43 charts = result['charts']
44 self.assertEquals(1, len(charts))
45 self.assertEquals(2, len(charts['chart']))
38 self.assertEquals({ 46 self.assertEquals({
39 'type': 'scalar', 47 'type': 'scalar',
40 'name': 'val1', 48 'name': 'val1',
41 'units': 'ms', 49 'units': 'ms',
42 'value': 1}, result['chart'][0]) 50 'value': 1}, charts['chart'][0])
43 self.assertEquals({ 51 self.assertEquals({
44 'type': 'scalar', 52 'type': 'scalar',
45 'name': 'val2', 53 'name': 'val2',
46 'units': 'ms', 54 'units': 'ms',
47 'value': 2}, result['chart'][1]) 55 'value': 2}, charts['chart'][1])
48 56
49 def test_two_charts(self): 57 def test_two_charts(self):
50 """Tests chart data with two samples over two charts.""" 58 """Tests chart data with two samples over two charts."""
51 recorder = ChartDataRecorder() 59 recorder = ChartDataRecorder('benchmark')
52 recorder.record_scalar('chart1', 'val1', 'ms', 1) 60 recorder.record_scalar('chart1', 'val1', 'ms', 1)
53 recorder.record_scalar('chart2', 'val2', 'ms', 2) 61 recorder.record_scalar('chart2', 'val2', 'ms', 2)
54 62
55 result = json.loads(recorder.get_json()) 63 result = json.loads(recorder.get_json())
56 self.assertEquals(2, len(result)) 64 self.assertEquals('1.0', result['format_version'])
57 self.assertEquals(1, len(result['chart1'])) 65 self.assertEquals('benchmark', result['benchmark_name'])
66
67 charts = result['charts']
68 self.assertEquals(2, len(charts))
69 self.assertEquals(1, len(charts['chart1']))
58 self.assertEquals({ 70 self.assertEquals({
59 'type': 'scalar', 71 'type': 'scalar',
60 'name': 'val1', 72 'name': 'val1',
61 'units': 'ms', 73 'units': 'ms',
62 'value': 1}, result['chart1'][0]) 74 'value': 1}, charts['chart1'][0])
63 self.assertEquals(1, len(result['chart2'])) 75 self.assertEquals(1, len(charts['chart2']))
64 self.assertEquals({ 76 self.assertEquals({
65 'type': 'scalar', 77 'type': 'scalar',
66 'name': 'val2', 78 'name': 'val2',
67 'units': 'ms', 79 'units': 'ms',
68 'value': 2}, result['chart2'][0]) 80 'value': 2}, charts['chart2'][0])
OLDNEW
« no previous file with comments | « mojo/devtools/common/devtoolslib/perf_dashboard.py ('k') | mojo/devtools/common/mojo_benchmark » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698