| # Copyright 2019 The LUCI Authors. All rights reserved. |
| # Use of this source code is governed under the Apache License, Version 2.0 |
| # that can be found in the LICENSE file. |
| |
| DEPS = [ |
| 'futures', |
| 'python', |
| 'step', |
| ] |
| |
| |
| def RunSteps(api): |
| futures = [] |
| for i in xrange(10): |
| def _runner(i): |
| api.python.inline( |
| 'sleep loop [%d]' % (i+1), |
| ''' |
| import time |
| for x in xrange(%d): |
| print "Hi! %%s" %% x |
| time.sleep(1) |
| ''' % (i+1)) |
| return i + 1 |
| futures.append(api.futures.spawn(_runner, i)) |
| |
| with api.futures.iwait(futures) as iter: |
| for helper in iter: |
| result = helper.result() |
| if result < 5: |
| api.step('Sleeper %d complete' % helper.result(), cmd=None) |
| else: |
| result = api.step('OH NO QUIT QUIT QUIT', cmd=None) |
| result.presentation.status = 'FAILURE' |
| raise api.step.StepFailure('boomzors') |
| |
| |
| def GenTests(api): |
| yield api.test('basic') |
| |