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

Side by Side Diff: appengine/findit/waterfall/test/process_swarming_task_result_pipeline_test.py

Issue 2027333002: [Findit] don't included skipped or unknown tests in swarming tasks into failed tests. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Make sure only collect swarming result for targeted tests. Created 4 years, 6 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 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 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 datetime 5 import datetime
6 6
7 from model import analysis_status 7 from model import analysis_status
8 from model.wf_swarming_task import WfSwarmingTask 8 from model.wf_swarming_task import WfSwarmingTask
9 from waterfall import process_swarming_task_result_pipeline 9 from waterfall import process_swarming_task_result_pipeline
10 from waterfall import swarming_util 10 from waterfall import swarming_util
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 super(ProcessSwarmingTaskResultPipelineTest, self).setUp() 136 super(ProcessSwarmingTaskResultPipelineTest, self).setUp()
137 self.master_name = 'm' 137 self.master_name = 'm'
138 self.builder_name = 'b' 138 self.builder_name = 'b'
139 self.build_number = 121 139 self.build_number = 121
140 self.step_name = 'abc_tests on platform' 140 self.step_name = 'abc_tests on platform'
141 self.mock(swarming_util, 'GetSwarmingTaskResultById', 141 self.mock(swarming_util, 'GetSwarmingTaskResultById',
142 self._MockedGetSwarmingTaskResultById) 142 self._MockedGetSwarmingTaskResultById)
143 143
144 def testCheckTestsRunStatusesNoOutPutJson(self): 144 def testCheckTestsRunStatusesNoOutPutJson(self):
145 tests_statuses = ( 145 tests_statuses = (
146 process_swarming_task_result_pipeline._CheckTestsRunStatuses(None)) 146 process_swarming_task_result_pipeline._CheckTestsRunStatuses(None, []))
147 self.assertEqual({}, tests_statuses) 147 self.assertEqual({}, tests_statuses)
148 148
149 def testCheckTestsRunStatuses(self): 149 def testCheckTestsRunStatuses(self):
150 tests = ['TestSuite1.test1', 'TestSuite1.test2']
151 expected_tests_statuses = {
152 'TestSuite1.test1': {
153 'total_run': 2,
154 'SUCCESS': 2
155 },
156 'TestSuite1.test2': {
157 'total_run': 4,
158 'SUCCESS': 2,
159 'FAILURE': 2
160 }
161 }
150 tests_statuses = ( 162 tests_statuses = (
151 process_swarming_task_result_pipeline._CheckTestsRunStatuses( 163 process_swarming_task_result_pipeline._CheckTestsRunStatuses(
152 _SAMPLE_FAILURE_LOG)) 164 _SAMPLE_FAILURE_LOG, tests))
153 self.assertEqual(_EXPECTED_TESTS_STATUESE, tests_statuses) 165 self.assertEqual(expected_tests_statuses, tests_statuses)
154 166
155 def _MockedGetSwarmingTaskFailureLog(self, *_): 167 def _MockedGetSwarmingTaskFailureLog(self, *_):
156 return _SAMPLE_FAILURE_LOG 168 return _SAMPLE_FAILURE_LOG
157 169
158 def testProcessSwarmingTaskResultPipeline(self): 170 def testProcessSwarmingTaskResultPipeline(self):
159 task_id = 'task_id1' 171 task_id = 'task_id1'
172 tests = ['TestSuite1.test1', 'TestSuite1.test2', 'TestSuite1.test3']
160 173
161 self.mock(swarming_util, 'GetSwarmingTaskFailureLog', 174 self.mock(swarming_util, 'GetSwarmingTaskFailureLog',
162 self._MockedGetSwarmingTaskFailureLog) 175 self._MockedGetSwarmingTaskFailureLog)
163 176
164 WfSwarmingTask.Create( 177 WfSwarmingTask.Create(
165 self.master_name, self.builder_name, 178 self.master_name, self.builder_name,
166 self.build_number, self.step_name).put() 179 self.build_number, self.step_name).put()
167 180
168 pipeline = ProcessSwarmingTaskResultPipeline() 181 pipeline = ProcessSwarmingTaskResultPipeline()
169 step_name, task_info = pipeline.run( 182 step_name, task_info = pipeline.run(
170 self.master_name, self.builder_name, 183 self.master_name, self.builder_name,
171 self.build_number, self.step_name, task_id) 184 self.build_number, self.step_name, task_id, tests)
172 185
173 self.assertEqual(self.step_name, step_name) 186 self.assertEqual(self.step_name, step_name)
174 self.assertEqual('abc_tests', task_info[0]) 187 self.assertEqual('abc_tests', task_info[0])
175 self.assertEqual(_EXPECTED_CLASSIFIED_TESTS, task_info[1]) 188 self.assertEqual(_EXPECTED_CLASSIFIED_TESTS, task_info[1])
176 189
177 task = WfSwarmingTask.Get( 190 task = WfSwarmingTask.Get(
178 self.master_name, self.builder_name, self.build_number, self.step_name) 191 self.master_name, self.builder_name, self.build_number, self.step_name)
179 192
180 self.assertEqual(analysis_status.COMPLETED, task.status) 193 self.assertEqual(analysis_status.COMPLETED, task.status)
181 self.assertEqual(_EXPECTED_TESTS_STATUESE, task.tests_statuses) 194 self.assertEqual(_EXPECTED_TESTS_STATUESE, task.tests_statuses)
182 self.assertEqual(_EXPECTED_CLASSIFIED_TESTS, task.classified_tests) 195 self.assertEqual(_EXPECTED_CLASSIFIED_TESTS, task.classified_tests)
183 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220), 196 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 6, 538220),
184 task.created_time) 197 task.created_time)
185 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550), 198 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 32, 9, 90550),
186 task.started_time) 199 task.started_time)
187 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9), 200 self.assertEqual(datetime.datetime(2016, 2, 10, 18, 33, 9),
188 task.completed_time) 201 task.completed_time)
189 202
190 def testProcessSwarmingTaskResultPipelineTaskNotRunning(self): 203 def testProcessSwarmingTaskResultPipelineTaskNotRunning(self):
191 task_id = 'task_id2' 204 task_id = 'task_id2'
205 tests = ['TestSuite1.test1', 'TestSuite1.test2', 'TestSuite1.test3']
192 206
193 WfSwarmingTask.Create( 207 WfSwarmingTask.Create(
194 self.master_name, self.builder_name, 208 self.master_name, self.builder_name,
195 self.build_number, self.step_name).put() 209 self.build_number, self.step_name).put()
196 210
197 pipeline = ProcessSwarmingTaskResultPipeline() 211 pipeline = ProcessSwarmingTaskResultPipeline()
198 step_name, task_info = pipeline.run( 212 step_name, task_info = pipeline.run(
199 self.master_name, self.builder_name, 213 self.master_name, self.builder_name,
200 self.build_number, self.step_name, task_id) 214 self.build_number, self.step_name, task_id, tests)
201 215
202 self.assertEqual(self.step_name, step_name) 216 self.assertEqual(self.step_name, step_name)
203 self.assertIsNone(task_info[0]) 217 self.assertIsNone(task_info[0])
204 self.assertEqual({}, task_info[1]) 218 self.assertEqual({}, task_info[1])
205 219
206 task = WfSwarmingTask.Get( 220 task = WfSwarmingTask.Get(
207 self.master_name, self.builder_name, self.build_number, self.step_name) 221 self.master_name, self.builder_name, self.build_number, self.step_name)
208 222
209 self.assertEqual(analysis_status.ERROR, task.status) 223 self.assertEqual(analysis_status.ERROR, task.status)
210 self.assertEqual({}, task.tests_statuses) 224 self.assertEqual({}, task.tests_statuses)
211 self.assertEqual({}, task.classified_tests) 225 self.assertEqual({}, task.classified_tests)
212 226
213 def testProcessSwarmingTaskResultPipelineTaskTimeOut(self): 227 def testProcessSwarmingTaskResultPipelineTaskTimeOut(self):
214 task_id = 'task_id1' 228 task_id = 'task_id1'
229 tests = ['TestSuite1.test1', 'TestSuite1.test2', 'TestSuite1.test3']
215 230
216 # Override swarming config settings to force a timeout. 231 # Override swarming config settings to force a timeout.
217 override_swarming_settings = { 232 override_swarming_settings = {
218 'task_timeout_hours': -1 233 'task_timeout_hours': -1
219 } 234 }
220 self.UpdateUnitTestConfigSettings( 235 self.UpdateUnitTestConfigSettings(
221 'swarming_settings', override_swarming_settings) 236 'swarming_settings', override_swarming_settings)
222 237
223 WfSwarmingTask.Create( 238 WfSwarmingTask.Create(
224 self.master_name, self.builder_name, 239 self.master_name, self.builder_name,
225 self.build_number, self.step_name).put() 240 self.build_number, self.step_name).put()
226 241
227 pipeline = ProcessSwarmingTaskResultPipeline() 242 pipeline = ProcessSwarmingTaskResultPipeline()
228 step_name, task_info = pipeline.run( 243 step_name, task_info = pipeline.run(
229 self.master_name, self.builder_name, 244 self.master_name, self.builder_name,
230 self.build_number, self.step_name, task_id) 245 self.build_number, self.step_name, task_id, tests)
231 246
232 self.assertEqual(self.step_name, step_name) 247 self.assertEqual(self.step_name, step_name)
233 self.assertEqual('abc_tests', task_info[0]) 248 self.assertEqual('abc_tests', task_info[0])
234 self.assertEqual({}, task_info[1]) 249 self.assertEqual({}, task_info[1])
235 250
236 task = WfSwarmingTask.Get( 251 task = WfSwarmingTask.Get(
237 self.master_name, self.builder_name, self.build_number, self.step_name) 252 self.master_name, self.builder_name, self.build_number, self.step_name)
238 253
239 self.assertEqual(analysis_status.ERROR, task.status) 254 self.assertEqual(analysis_status.ERROR, task.status)
240 self.assertEqual({}, task.tests_statuses) 255 self.assertEqual({}, task.tests_statuses)
241 self.assertEqual({}, task.classified_tests) 256 self.assertEqual({}, task.classified_tests)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698