OLD | NEW |
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 import base64 | 5 import base64 |
6 import contextlib | 6 import contextlib |
7 import datetime | 7 import datetime |
8 import json | 8 import json |
9 | 9 |
10 from components import auth | 10 from components import auth |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 {'junk': 1}, | 141 {'junk': 1}, |
142 {'recipe': []}, | 142 {'recipe': []}, |
143 {'recipe': {'junk': 1}}, | 143 {'recipe': {'junk': 1}}, |
144 {'recipe': {'revision': 1}}, | 144 {'recipe': {'revision': 1}}, |
145 ] | 145 ] |
146 for p in bad: | 146 for p in bad: |
147 with self.assertRaises(errors.InvalidInputError): | 147 with self.assertRaises(errors.InvalidInputError): |
148 validate_swarming_param(p) | 148 validate_swarming_param(p) |
149 | 149 |
150 def test_execution_timeout(self): | 150 def test_execution_timeout(self): |
151 builder_cfg = project_config_pb2.Swarming.Builder( | 151 self.bucket_cfg.swarming.common_execution_timeout_secs = 120 |
152 name='fast-builder', | 152 builder_cfg = project_config_pb2.Swarming.Builder(name='fast-builder') |
153 execution_timeout_secs=60, | |
154 ) | |
155 | 153 |
156 build = model.Build( | 154 build = model.Build( |
157 bucket='bucket', | 155 bucket='bucket', |
158 parameters={ | 156 parameters={ |
159 'builder_name': 'fast-builder', | 157 'builder_name': 'fast-builder', |
160 }, | 158 }, |
161 ) | 159 ) |
162 | 160 |
163 task_def = swarming.create_task_def_async( | 161 task_def = swarming.create_task_def_async( |
164 self.bucket_cfg.swarming, builder_cfg, build).get_result() | 162 self.bucket_cfg.swarming, builder_cfg, build).get_result() |
165 | 163 |
166 self.assertEqual( | 164 self.assertEqual( |
| 165 task_def['properties']['execution_timeout_secs'], 120) |
| 166 |
| 167 builder_cfg.execution_timeout_secs = 60 |
| 168 task_def = swarming.create_task_def_async( |
| 169 self.bucket_cfg.swarming, builder_cfg, build).get_result() |
| 170 self.assertEqual( |
167 task_def['properties']['execution_timeout_secs'], 60) | 171 task_def['properties']['execution_timeout_secs'], 60) |
168 | 172 |
169 def test_create_task_async(self): | 173 def test_create_task_async(self): |
170 build = model.Build( | 174 build = model.Build( |
171 bucket='bucket', | 175 bucket='bucket', |
172 tags=['builder:builder'], | 176 tags=['builder:builder'], |
173 parameters={ | 177 parameters={ |
174 'builder_name': 'builder', | 178 'builder_name': 'builder', |
175 'swarming': { | 179 'swarming': { |
176 'recipe': {'revision': 'badcoffee'}, | 180 'recipe': {'revision': 'badcoffee'}, |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 'status': model.BuildStatus.COMPLETED, | 369 'status': model.BuildStatus.COMPLETED, |
366 'result': model.BuildResult.FAILURE, | 370 'result': model.BuildResult.FAILURE, |
367 'failure_reason': model.FailureReason.INFRA_FAILURE, | 371 'failure_reason': model.FailureReason.INFRA_FAILURE, |
368 }, | 372 }, |
369 | 373 |
370 { | 374 { |
371 'task_result': { | 375 'task_result': { |
372 'state': 'TIMED_OUT', | 376 'state': 'TIMED_OUT', |
373 }, | 377 }, |
374 'status': model.BuildStatus.COMPLETED, | 378 'status': model.BuildStatus.COMPLETED, |
375 'result': model.BuildResult.CANCELED, | 379 'result': model.BuildResult.FAILURE, |
376 'cancelation_reason': model.CancelationReason.TIMEOUT, | 380 'failure_reason': model.FailureReason.INFRA_FAILURE, |
377 }, | 381 }, |
378 | 382 |
379 { | 383 { |
380 'task_result': { | 384 'task_result': { |
381 'state': 'EXPIRED', | 385 'state': 'EXPIRED', |
382 }, | 386 }, |
383 'status': model.BuildStatus.COMPLETED, | 387 'status': model.BuildStatus.COMPLETED, |
384 'result': model.BuildResult.CANCELED, | 388 'result': model.BuildResult.CANCELED, |
385 'cancelation_reason': model.CancelationReason.TIMEOUT, | 389 'cancelation_reason': model.CancelationReason.TIMEOUT, |
386 }, | 390 }, |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
612 self.assertEqual(build.status, model.BuildStatus.COMPLETED) | 616 self.assertEqual(build.status, model.BuildStatus.COMPLETED) |
613 self.assertEqual(build.result, model.BuildResult.FAILURE) | 617 self.assertEqual(build.result, model.BuildResult.FAILURE) |
614 self.assertEqual(build.failure_reason, model.FailureReason.INFRA_FAILURE) | 618 self.assertEqual(build.failure_reason, model.FailureReason.INFRA_FAILURE) |
615 self.assertIsNotNone(build.result_details) | 619 self.assertIsNotNone(build.result_details) |
616 self.assertIsNone(build.lease_key) | 620 self.assertIsNone(build.lease_key) |
617 self.assertIsNotNone(build.complete_time) | 621 self.assertIsNotNone(build.complete_time) |
618 | 622 |
619 | 623 |
620 def b64json(data): | 624 def b64json(data): |
621 return base64.b64encode(json.dumps(data)) | 625 return base64.b64encode(json.dumps(data)) |
OLD | NEW |