| Index: testing/chromoting/chromoting_test_driver_launcher.py
|
| diff --git a/testing/chromoting/chromoting_test_driver_launcher.py b/testing/chromoting/chromoting_test_driver_launcher.py
|
| index 186adb9341d20cd3f19d567f0a9e165f35f28db0..73373441f55107ec1b249f71df486b75040047a4 100644
|
| --- a/testing/chromoting/chromoting_test_driver_launcher.py
|
| +++ b/testing/chromoting/chromoting_test_driver_launcher.py
|
| @@ -8,6 +8,7 @@ import argparse
|
|
|
| from chromoting_test_utilities import GetJidFromHostLog
|
| from chromoting_test_utilities import InitialiseTestMachineForLinux
|
| +from chromoting_test_utilities import MAX_RETRIES
|
| from chromoting_test_utilities import PrintHostLogContents
|
| from chromoting_test_utilities import PROD_DIR_ID
|
| from chromoting_test_utilities import RunCommandInSubProcess
|
| @@ -40,22 +41,34 @@ def LaunchCTDCommand(args, command):
|
| print 'Host-JID not found in log %s.' % host_log_file_names[-1]
|
| return '[Command failed]: %s, %s' % (command, host_log_file_names)
|
|
|
| - # In order to ensure the host is online with the expected JID, pass in the
|
| - # jid obtained from the host-log as a command-line parameter.
|
| - command = command.replace('\n', '') + ' --hostjid=%s' % host_jid
|
| -
|
| - results = RunCommandInSubProcess(command)
|
| -
|
| - tear_down_index = results.find(TEST_ENVIRONMENT_TEAR_DOWN_INDICATOR)
|
| - if tear_down_index == -1:
|
| - # The test environment did not tear down. Something went horribly wrong.
|
| - return '[Command failed]: ' + command, host_log_file_names
|
| -
|
| - end_results_list = results[tear_down_index:].split('\n')
|
| + retries = 0
|
| failed_tests_list = []
|
| - for result in end_results_list:
|
| - if result.startswith(FAILED_INDICATOR):
|
| - failed_tests_list.append(result)
|
| + # TODO(anandc): Remove this retry-logic once http://crbug/570840 is fixed.
|
| + while retries <= MAX_RETRIES:
|
| + # In order to ensure the host is online with the expected JID, pass in the
|
| + # jid obtained from the host-log as a command-line parameter.
|
| + command = command.replace('\n', '') + ' --hostjid=%s' % host_jid
|
| +
|
| + results = RunCommandInSubProcess(command)
|
| +
|
| + tear_down_index = results.find(TEST_ENVIRONMENT_TEAR_DOWN_INDICATOR)
|
| + if tear_down_index == -1:
|
| + # The test environment did not tear down. Something went horribly wrong.
|
| + return '[Command failed]: ' + command, host_log_file_names
|
| +
|
| + end_results_list = results[tear_down_index:].split('\n')
|
| + test_failed = False
|
| + for result in end_results_list:
|
| + if result.startswith(FAILED_INDICATOR):
|
| + test_failed = True
|
| + if retries == MAX_RETRIES:
|
| + # Test failed and we have no more retries left.
|
| + failed_tests_list.append(result)
|
| +
|
| + if test_failed:
|
| + retries += 1
|
| + else:
|
| + break
|
|
|
| if failed_tests_list:
|
| test_result = '[Command]: ' + command
|
|
|