| OLD | NEW |
| 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 time | 5 import time |
| 6 | 6 |
| 7 from testing_utils import testing | 7 from testing_utils import testing |
| 8 | 8 |
| 9 from model import wf_analysis_status | 9 from model import wf_analysis_status |
| 10 from model.wf_swarming_task import WfSwarmingTask | 10 from model.wf_swarming_task import WfSwarmingTask |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 {'key': 'GTEST_SHARD_INDEX', 'value': '1'}, | 104 {'key': 'GTEST_SHARD_INDEX', 'value': '1'}, |
| 105 {'key': 'GTEST_TOTAL_SHARDS', 'value': '5'}, | 105 {'key': 'GTEST_TOTAL_SHARDS', 'value': '5'}, |
| 106 ], | 106 ], |
| 107 'execution_timeout_secs': 3600, | 107 'execution_timeout_secs': 3600, |
| 108 'extra_args': ['--flag=value', '--gtest_filter=d.f'], | 108 'extra_args': ['--flag=value', '--gtest_filter=d.f'], |
| 109 'grace_period_secs': 30, | 109 'grace_period_secs': 30, |
| 110 'idempotent': True, | 110 'idempotent': True, |
| 111 'inputs_ref': {'a': 1}, | 111 'inputs_ref': {'a': 1}, |
| 112 'io_timeout_secs': 1200, | 112 'io_timeout_secs': 1200, |
| 113 }, | 113 }, |
| 114 'tags': ['master:a', 'buildername:b'], | 114 'tags': ['master:a', 'buildername:b', 'name:a_tests'], |
| 115 'user': 'user', | 115 'user': 'user', |
| 116 }) | 116 }) |
| 117 self.mock(swarming_util, 'GetSwarmingTaskRequest', | 117 self.mock(swarming_util, 'GetSwarmingTaskRequest', |
| 118 MockedGetSwarmingTaskRequest) | 118 MockedGetSwarmingTaskRequest) |
| 119 | 119 |
| 120 new_request_json = {} | 120 new_request_json = {} |
| 121 def MockedTriggerSwarmingTask(new_request, *_): | 121 def MockedTriggerSwarmingTask(new_request, *_): |
| 122 new_request_json.update(new_request.Serialize()) | 122 new_request_json.update(new_request.Serialize()) |
| 123 return 'new_task_id' | 123 return 'new_task_id' |
| 124 self.mock(swarming_util, 'TriggerSwarmingTask', MockedTriggerSwarmingTask) | 124 self.mock(swarming_util, 'TriggerSwarmingTask', MockedTriggerSwarmingTask) |
| 125 | 125 |
| 126 def MockedGetSwarmingTaskName(*_): | 126 def MockedGetSwarmingTaskName(*_): |
| 127 return 'new_task_name' | 127 return 'new_task_name' |
| 128 self.mock(trigger_swarming_task_pipeline, '_GetSwarmingTaskName', | 128 self.mock(trigger_swarming_task_pipeline, '_GetSwarmingTaskName', |
| 129 MockedGetSwarmingTaskName) | 129 MockedGetSwarmingTaskName) |
| 130 | 130 |
| 131 self._MockGetSwarmingSettings() | 131 self._MockGetSwarmingSettings() |
| 132 | 132 |
| 133 master_name = 'm' | 133 master_name = 'm' |
| 134 builder_name = 'b' | 134 builder_name = 'b' |
| 135 build_number = 234 | 135 build_number = 234 |
| 136 step_name = 's' | 136 step_name = 'a_tests on platform' |
| 137 tests = ['a.b', 'a.c'] | 137 tests = ['a.b', 'a.c'] |
| 138 | 138 |
| 139 expected_new_request_json = { | 139 expected_new_request_json = { |
| 140 'expiration_secs': 3600, | 140 'expiration_secs': 3600, |
| 141 'name': 'new_task_name', | 141 'name': 'new_task_name', |
| 142 'parent_task_id': '', | 142 'parent_task_id': '', |
| 143 'priority': 25, | 143 'priority': 25, |
| 144 'properties': { | 144 'properties': { |
| 145 'command': 'cmd', | 145 'command': 'cmd', |
| 146 'dimensions': [{'key': 'k', 'value': 'v'}], | 146 'dimensions': [{'key': 'k', 'value': 'v'}], |
| 147 'env': [ | 147 'env': [ |
| 148 {'key': 'a', 'value': '1'}, | 148 {'key': 'a', 'value': '1'}, |
| 149 ], | 149 ], |
| 150 'execution_timeout_secs': 3600, | 150 'execution_timeout_secs': 3600, |
| 151 'extra_args': [ | 151 'extra_args': [ |
| 152 '--flag=value', '--gtest_repeat=10', | 152 '--flag=value', '--gtest_repeat=10', |
| 153 '--test-launcher-retry-limit=0', | 153 '--test-launcher-retry-limit=0', |
| 154 '--gtest_filter=a.b:a.c'], | 154 '--gtest_filter=a.b:a.c'], |
| 155 'grace_period_secs': 30, | 155 'grace_period_secs': 30, |
| 156 'idempotent': False, | 156 'idempotent': False, |
| 157 'inputs_ref': {'a': 1}, | 157 'inputs_ref': {'a': 1}, |
| 158 'io_timeout_secs': 1200, | 158 'io_timeout_secs': 1200, |
| 159 }, | 159 }, |
| 160 'tags': ['purpose:deflake', 'ref_master:%s' % master_name, | 160 'tags': ['purpose:deflake', 'ref_master:%s' % master_name, |
| 161 'ref_buildername:%s' % builder_name, | 161 'ref_buildername:%s' % builder_name, |
| 162 'ref_buildnumber:%s' % build_number, | 162 'ref_buildnumber:%s' % build_number, |
| 163 'ref_stepname:%s' % step_name, | 163 'ref_stepname:%s' % step_name, |
| 164 'ref_task_id:1'], | 164 'ref_task_id:1', |
| 165 'ref_name:a_tests'], |
| 165 'user': '', | 166 'user': '', |
| 166 } | 167 } |
| 167 | 168 |
| 168 pipeline = TriggerSwarmingTaskPipeline() | 169 pipeline = TriggerSwarmingTaskPipeline() |
| 169 new_task_id = pipeline.run( | 170 new_task_id = pipeline.run( |
| 170 master_name, builder_name, build_number, step_name, tests) | 171 master_name, builder_name, build_number, step_name, tests) |
| 171 self.assertEqual('new_task_id', new_task_id) | 172 self.assertEqual('new_task_id', new_task_id) |
| 172 self.assertEqual(expected_new_request_json, new_request_json) | 173 self.assertEqual(expected_new_request_json, new_request_json) |
| 173 | 174 |
| 174 swarming_task = WfSwarmingTask.Get( | 175 swarming_task = WfSwarmingTask.Get( |
| 175 master_name, builder_name, build_number, step_name) | 176 master_name, builder_name, build_number, step_name) |
| 176 self.assertIsNotNone(swarming_task) | 177 self.assertIsNotNone(swarming_task) |
| 177 self.assertEqual('new_task_id', swarming_task.task_id) | 178 self.assertEqual('new_task_id', swarming_task.task_id) |
| 178 self.assertEqual(tests, swarming_task.parameters['tests']) | 179 self.assertEqual(tests, swarming_task.parameters['tests']) |
| 179 self.assertEqual(_MOCK_SWARMING_SETTINGS['iterations_to_rerun'], | 180 self.assertEqual(_MOCK_SWARMING_SETTINGS['iterations_to_rerun'], |
| 180 swarming_task.parameters['iterations_to_rerun']) | 181 swarming_task.parameters['iterations_to_rerun']) |
| OLD | NEW |