| Index: scripts/slave/recipe_modules/chromium_tests/steps.py
|
| diff --git a/scripts/slave/recipe_modules/chromium_tests/steps.py b/scripts/slave/recipe_modules/chromium_tests/steps.py
|
| index 8139e8375cadfbc6ba15acb9ce248250d6aedbbf..fe6dcff5f4236d957fea1becb79c66541e626463 100644
|
| --- a/scripts/slave/recipe_modules/chromium_tests/steps.py
|
| +++ b/scripts/slave/recipe_modules/chromium_tests/steps.py
|
| @@ -1079,19 +1079,35 @@ class SwarmingIsolatedScriptTest(SwarmingTest):
|
| title=self._step_name(suffix), isolated_hash=isolated_hash,
|
| shards=self._shards, idempotent=False, extra_args=args)
|
|
|
| + def validate_simplified_results(self, results):
|
| + failures = results['failures']
|
| + valid = results['valid']
|
| + return results['valid'], results['failures']
|
| +
|
| + def validate_json_test_results(self, api, results):
|
| + test_results = api.test_utils.create_results_from_json(results)
|
| + tests = test_results.tests
|
| + failures = list(t for t in tests if
|
| + tests[t]['expected'] != tests[t]['actual'])
|
| + valid = results['num_failures_by_type'].get('FAIL', 0) == len(failures)
|
| + return valid, failures
|
| +
|
| def validate_task_results(self, api, step_result):
|
| results = getattr(step_result, 'isolated_script_results', None) or {}
|
| -
|
| + valid = True
|
| + failures = []
|
| try:
|
| - failures = results['failures']
|
| - valid = results['valid']
|
| - if not failures and step_result.retcode != 0:
|
| - failures = ['%s (entire test suite)' % self.name]
|
| - valid = False
|
| + if results.get('version', 0) == 3:
|
| + valid, failures = self.validate_json_test_results(api, results)
|
| + else:
|
| + valid, failures = self.validate_simplified_results(results)
|
| except (ValueError, KeyError) as e:
|
| step_result.presentation.logs['invalid_results_exc'] = [str(e)]
|
| valid = False
|
| failures = None
|
| + if not failures and step_result.retcode != 0:
|
| + failures = ['%s (entire test suite)' % self.name]
|
| + valid = False
|
| if valid:
|
| step_result.presentation.step_text += api.test_utils.format_step_text([
|
| ['failures:', failures]
|
|
|