Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1062)

Unified Diff: scripts/slave/recipe_modules/chromium_tests/steps.py

Issue 2375663003: Add json test results format support for SwarmingIsolatedScriptTest (Closed)
Patch Set: Update SwarmingIsolatedScriptTest Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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]

Powered by Google App Engine
This is Rietveld 408576698