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

Side by Side Diff: dashboard/dashboard/pinpoint/handlers/quest_generator_test.py

Issue 2998283002: [pinpoint] Add GTest support to quest_generator. (Closed)
Patch Set: Rebase Created 3 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 unified diff | Download patch
OLDNEW
1 # Copyright 2017 The Chromium Authors. All rights reserved. 1 # Copyright 2017 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 import unittest 5 import unittest
6 6
7 from dashboard.pinpoint.handlers import quest_generator 7 from dashboard.pinpoint.handlers import quest_generator
8 from dashboard.pinpoint.models import quest 8 from dashboard.pinpoint.models import quest
9 9
10 10
11 _MIN_RUN_TEST_ARGUMENTS = [ 11 _MIN_TELEMETRY_RUN_TEST_ARGUMENTS = [
12 'speedometer', '--pageset-repeat', '20', '--browser', 'release', 12 'speedometer', '--pageset-repeat', '20', '--browser', 'release',
13 '-v', '--upload-results', '--output-format', 'chartjson', 13 '-v', '--upload-results', '--output-format', 'chartjson',
14 '--isolated-script-test-output', '${ISOLATED_OUTDIR}/output.json', 14 '--isolated-script-test-output', '${ISOLATED_OUTDIR}/output.json',
15 '--isolated-script-test-chartjson-output', 15 '--isolated-script-test-chartjson-output',
16 '${ISOLATED_OUTDIR}/chartjson-output.json', 16 '${ISOLATED_OUTDIR}/chartjson-output.json',
17 ] 17 ]
18 18
19 19
20 _ALL_RUN_TEST_ARGUMENTS = [ 20 _ALL_TELEMETRY_RUN_TEST_ARGUMENTS = [
21 'speedometer', '--story-filter', 'http://www.fifa.com/', 21 'speedometer', '--story-filter', 'http://www.fifa.com/',
22 '--pageset-repeat', '50', '--browser', 'release', 22 '--pageset-repeat', '50', '--browser', 'release',
23 '-v', '--upload-results', '--output-format', 'chartjson', 23 '-v', '--upload-results', '--output-format', 'chartjson',
24 '--isolated-script-test-output', '${ISOLATED_OUTDIR}/output.json', 24 '--isolated-script-test-output', '${ISOLATED_OUTDIR}/output.json',
25 '--isolated-script-test-chartjson-output', 25 '--isolated-script-test-chartjson-output',
26 '${ISOLATED_OUTDIR}/chartjson-output.json', 26 '${ISOLATED_OUTDIR}/chartjson-output.json',
27 ] 27 ]
28 28
29 29
30 _MIN_GTEST_RUN_TEST_ARGUMENTS = [
31 '--gtest_repeat', '20',
32 '--isolated-script-test-output', '${ISOLATED_OUTDIR}/output.json',
33 '--isolated-script-test-chartjson-output',
34 '${ISOLATED_OUTDIR}/chartjson-output.json',
35 ]
36
37
38 _ALL_GTEST_RUN_TEST_ARGUMENTS = [
39 '--gtest_filter', 'test_name', '--gtest_repeat', '50',
40 '--isolated-script-test-output', '${ISOLATED_OUTDIR}/output.json',
41 '--isolated-script-test-chartjson-output',
42 '${ISOLATED_OUTDIR}/chartjson-output.json',
43 ]
44
45
30 class FindIsolateTest(unittest.TestCase): 46 class FindIsolateTest(unittest.TestCase):
31 47
32 def testMissingArguments(self): 48 def testMissingArguments(self):
33 arguments = {'target': 'telemetry_perf_tests'} 49 arguments = {'target': 'telemetry_perf_tests'}
34 # configuration is missing. 50 # configuration is missing.
35 with self.assertRaises(TypeError): 51 with self.assertRaises(TypeError):
36 quest_generator.GenerateQuests(arguments) 52 quest_generator.GenerateQuests(arguments)
37 53
38 arguments = {'configuration': 'chromium-rel-mac11-pro'} 54 arguments = {'configuration': 'chromium-rel-mac11-pro'}
39 # target is missing. 55 # target is missing.
40 with self.assertRaises(TypeError): 56 with self.assertRaises(TypeError):
41 quest_generator.GenerateQuests(arguments) 57 quest_generator.GenerateQuests(arguments)
42 58
43 def testAllArguments(self): 59 def testAllArguments(self):
44 arguments = { 60 arguments = {
45 'configuration': 'chromium-rel-mac11-pro', 61 'configuration': 'chromium-rel-mac11-pro',
46 'target': 'telemetry_perf_tests', 62 'target': 'telemetry_perf_tests',
47 } 63 }
48 expected_quests = [ 64 expected_quests = [
49 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'), 65 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'),
50 ] 66 ]
51 self.assertEqual(quest_generator.GenerateQuests(arguments), 67 self.assertEqual(quest_generator.GenerateQuests(arguments),
52 (arguments, expected_quests)) 68 (arguments, expected_quests))
53 69
54 70
55 class TelemetryRunTestQuest(unittest.TestCase): 71 class TelemetryRunTest(unittest.TestCase):
56 72
57 def testMissingArguments(self): 73 def testMissingArguments(self):
58 arguments = { 74 arguments = {
59 'configuration': 'chromium-rel-mac11-pro', 75 'configuration': 'chromium-rel-mac11-pro',
60 'target': 'telemetry_perf_tests', 76 'target': 'telemetry_perf_tests',
61 'dimensions': '{}', 77 'dimensions': '{}',
62 # benchmark is missing. 78 # benchmark is missing.
63 'browser': 'release', 79 'browser': 'release',
64 } 80 }
65 with self.assertRaises(TypeError): 81 with self.assertRaises(TypeError):
(...skipping 13 matching lines...) Expand all
79 arguments = { 95 arguments = {
80 'configuration': 'chromium-rel-mac11-pro', 96 'configuration': 'chromium-rel-mac11-pro',
81 'target': 'telemetry_perf_tests', 97 'target': 'telemetry_perf_tests',
82 'dimensions': '{}', 98 'dimensions': '{}',
83 'benchmark': 'speedometer', 99 'benchmark': 'speedometer',
84 'browser': 'release', 100 'browser': 'release',
85 } 101 }
86 102
87 expected_quests = [ 103 expected_quests = [
88 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'), 104 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'),
89 quest.RunTest({}, _MIN_RUN_TEST_ARGUMENTS), 105 quest.RunTest({}, _MIN_TELEMETRY_RUN_TEST_ARGUMENTS),
90 ] 106 ]
91 self.assertEqual(quest_generator.GenerateQuests(arguments), 107 self.assertEqual(quest_generator.GenerateQuests(arguments),
92 (arguments, expected_quests)) 108 (arguments, expected_quests))
93 109
94 def testAllArguments(self): 110 def testAllArguments(self):
95 arguments = { 111 arguments = {
96 'configuration': 'chromium-rel-mac11-pro', 112 'configuration': 'chromium-rel-mac11-pro',
97 'target': 'telemetry_perf_tests', 113 'target': 'telemetry_perf_tests',
98 'dimensions': '{"key": "value"}', 114 'dimensions': '{"key": "value"}',
99 'benchmark': 'speedometer', 115 'benchmark': 'speedometer',
100 'browser': 'release', 116 'browser': 'release',
101 'story': 'http://www.fifa.com/', 117 'story': 'http://www.fifa.com/',
102 'repeat_count': '50', 118 'repeat_count': '50',
103 } 119 }
104 120
105 expected_quests = [ 121 expected_quests = [
106 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'), 122 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'),
107 quest.RunTest({'key': 'value'}, _ALL_RUN_TEST_ARGUMENTS), 123 quest.RunTest({'key': 'value'}, _ALL_TELEMETRY_RUN_TEST_ARGUMENTS),
108 ] 124 ]
109 self.assertEqual(quest_generator.GenerateQuests(arguments), 125 self.assertEqual(quest_generator.GenerateQuests(arguments),
110 (arguments, expected_quests)) 126 (arguments, expected_quests))
111 127
112 128
113 class ReadChartJsonValueQuest(unittest.TestCase): 129 class GTestRunTest(unittest.TestCase):
114 130
115 def testMinimumArguments(self): 131 def testMinimumArguments(self):
116 arguments = { 132 arguments = {
133 'configuration': 'chromium-rel-mac11-pro',
134 'target': 'net_perftests',
135 'dimensions': '{}',
136 }
137
138 expected_quests = [
139 quest.FindIsolate('chromium-rel-mac11-pro', 'net_perftests'),
140 quest.RunTest({}, _MIN_GTEST_RUN_TEST_ARGUMENTS),
141 ]
142 print quest_generator.GenerateQuests(arguments)[1][1]._extra_args
143 self.assertEqual(quest_generator.GenerateQuests(arguments),
144 (arguments, expected_quests))
145
146 def testAllArguments(self):
147 arguments = {
148 'configuration': 'chromium-rel-mac11-pro',
149 'target': 'net_perftests',
150 'dimensions': '{"key": "value"}',
151 'test': 'test_name',
152 'repeat_count': '50',
153 }
154
155 expected_quests = [
156 quest.FindIsolate('chromium-rel-mac11-pro', 'net_perftests'),
157 quest.RunTest({'key': 'value'}, _ALL_GTEST_RUN_TEST_ARGUMENTS),
158 ]
159 print quest_generator.GenerateQuests(arguments)[1][1]._extra_args
160 self.assertEqual(quest_generator.GenerateQuests(arguments),
161 (arguments, expected_quests))
162
163
164 class ReadChartJsonValue(unittest.TestCase):
165
166 def testMinimumArguments(self):
167 arguments = {
117 'configuration': 'chromium-rel-mac11-pro', 168 'configuration': 'chromium-rel-mac11-pro',
118 'target': 'telemetry_perf_tests', 169 'target': 'telemetry_perf_tests',
119 'dimensions': '{}', 170 'dimensions': '{}',
120 'benchmark': 'speedometer', 171 'benchmark': 'speedometer',
121 'browser': 'release', 172 'browser': 'release',
122 'metric': 'pcv1-cold@@timeToFirst', 173 'metric': 'pcv1-cold@@timeToFirst',
123 } 174 }
124 175
125 expected_quests = [ 176 expected_quests = [
126 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'), 177 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'),
127 quest.RunTest({}, _MIN_RUN_TEST_ARGUMENTS), 178 quest.RunTest({}, _MIN_TELEMETRY_RUN_TEST_ARGUMENTS),
128 quest.ReadChartJsonValue('pcv1-cold@@timeToFirst', None), 179 quest.ReadChartJsonValue('pcv1-cold@@timeToFirst', None),
129 ] 180 ]
130 self.assertEqual(quest_generator.GenerateQuests(arguments), 181 self.assertEqual(quest_generator.GenerateQuests(arguments),
131 (arguments, expected_quests)) 182 (arguments, expected_quests))
132 183
133 def testAllArguments(self): 184 def testAllArguments(self):
134 arguments = { 185 arguments = {
135 'configuration': 'chromium-rel-mac11-pro', 186 'configuration': 'chromium-rel-mac11-pro',
136 'target': 'telemetry_perf_tests', 187 'target': 'telemetry_perf_tests',
137 'dimensions': '{"key": "value"}', 188 'dimensions': '{"key": "value"}',
138 'benchmark': 'speedometer', 189 'benchmark': 'speedometer',
139 'browser': 'release', 190 'browser': 'release',
140 'story': 'http://www.fifa.com/', 191 'story': 'http://www.fifa.com/',
141 'repeat_count': '50', 192 'repeat_count': '50',
142 'metric': 'pcv1-cold@@timeTo', 193 'metric': 'pcv1-cold@@timeTo',
143 } 194 }
144 195
145 expected_quests = [ 196 expected_quests = [
146 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'), 197 quest.FindIsolate('chromium-rel-mac11-pro', 'telemetry_perf_tests'),
147 quest.RunTest({'key': 'value'}, _ALL_RUN_TEST_ARGUMENTS), 198 quest.RunTest({'key': 'value'}, _ALL_TELEMETRY_RUN_TEST_ARGUMENTS),
148 quest.ReadChartJsonValue('pcv1-cold@@timeTo', 'http://www.fifa.com/'), 199 quest.ReadChartJsonValue('pcv1-cold@@timeTo', 'http://www.fifa.com/'),
149 ] 200 ]
150 self.assertEqual(quest_generator.GenerateQuests(arguments), 201 self.assertEqual(quest_generator.GenerateQuests(arguments),
151 (arguments, expected_quests)) 202 (arguments, expected_quests))
203
204
205 class ReadGraphJsonValue(unittest.TestCase):
206
207 def testMissingArguments(self):
208 arguments = {
209 'configuration': 'chromium-rel-mac11-pro',
210 'target': 'net_perftests',
211 'dimensions': '{"key": "value"}',
212 'test': 'test_name',
213 'repeat_count': '50',
214 'trace': 'trace_name',
215 }
216
217 with self.assertRaises(TypeError):
218 quest_generator.GenerateQuests(arguments)
219
220 arguments = {
221 'configuration': 'chromium-rel-mac11-pro',
222 'target': 'net_perftests',
223 'dimensions': '{"key": "value"}',
224 'test': 'test_name',
225 'repeat_count': '50',
226 'chart': 'chart_name',
227 }
228
229 with self.assertRaises(TypeError):
230 quest_generator.GenerateQuests(arguments)
231
232 def testAllArguments(self):
233 arguments = {
234 'configuration': 'chromium-rel-mac11-pro',
235 'target': 'net_perftests',
236 'dimensions': '{"key": "value"}',
237 'test': 'test_name',
238 'repeat_count': '50',
239 'chart': 'chart_name',
240 'trace': 'trace_name',
241 }
242
243 expected_quests = [
244 quest.FindIsolate('chromium-rel-mac11-pro', 'net_perftests'),
245 quest.RunTest({'key': 'value'}, _ALL_GTEST_RUN_TEST_ARGUMENTS),
246 quest.ReadGraphJsonValue('chart_name', 'trace_name'),
247 ]
248 self.assertEqual(quest_generator.GenerateQuests(arguments),
249 (arguments, expected_quests))
OLDNEW
« no previous file with comments | « dashboard/dashboard/pinpoint/handlers/quest_generator.py ('k') | dashboard/dashboard/pinpoint/models/quest/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698