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

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

Issue 2410613002: Change SwarmingIsolatedScriptTest to upload json format results (Closed)
Patch Set: Rebase Created 4 years, 1 month 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
« no previous file with comments | « no previous file | scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_failed_isolated_script_test.json » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 0b51578516d2678eb6111934ef311c27271afcc5..8391f84269a8f15122a494d59198a34db5080951 100644
--- a/scripts/slave/recipe_modules/chromium_tests/steps.py
+++ b/scripts/slave/recipe_modules/chromium_tests/steps.py
@@ -1049,6 +1049,10 @@ class LocalIsolatedScriptTest(Test):
return self._test_runs[suffix].json.output['failures']
+def is_json_results_format(results):
+ return results.get('version', 0) == 3
+
+
class SwarmingIsolatedScriptTest(SwarmingTest):
def __init__(self, name, args=None, target_name=None, shards=1,
dimensions=None, tags=None, extra_suffix=None, priority=None,
@@ -1064,6 +1068,7 @@ class SwarmingIsolatedScriptTest(SwarmingTest):
self._perf_id=perf_id
self._results_url = results_url
self._perf_dashboard_id = perf_dashboard_id
+ self._isolated_script_results = {}
@property
def target_name(self):
@@ -1103,12 +1108,22 @@ class SwarmingIsolatedScriptTest(SwarmingTest):
for res in tests[t]['actual'].split()))
return True, failures
+ def upload_json_format_results(self, api, results):
+ chrome_revision_cp = api.bot_update.last_returned_properties.get(
+ 'got_revision_cp', 'x@{#0}')
+ chrome_revision = str(api.commit_position.parse_revision(
+ chrome_revision_cp))
+ api.test_results.upload(
+ api.json.input(results), chrome_revision=chrome_revision,
+ test_type=self.name,
+ test_results_server='test-results.appspot.com')
+
def validate_task_results(self, api, step_result):
results = getattr(step_result, 'isolated_script_results', None) or {}
valid = True
failures = []
try:
- if results.get('version', 0) == 3:
+ if is_json_results_format(results):
valid, failures = self.validate_json_test_results(api, results)
else:
valid, failures = self.validate_simplified_results(results)
@@ -1120,6 +1135,7 @@ class SwarmingIsolatedScriptTest(SwarmingTest):
failures = ['%s (entire test suite)' % self.name]
valid = False
if valid:
+ self._isolated_script_results = results
step_result.presentation.step_text += api.test_utils.format_step_text([
['failures:', failures]
])
@@ -1127,6 +1143,15 @@ class SwarmingIsolatedScriptTest(SwarmingTest):
self._output_chartjson_results_if_present(api, step_result)
return valid, failures
+ def post_run(self, api, suffix, test_filter=None):
+ try:
+ super(SwarmingIsolatedScriptTest, self).post_run(
+ api, suffix, test_filter=test_filter)
+ finally:
+ results = self._isolated_script_results
+ if self._upload_test_results and is_json_results_format(results):
+ self.upload_json_format_results(api, results)
+
def _output_chartjson_results_if_present(self, api, step_result):
results = \
getattr(step_result, 'isolated_script_chartjson_results', None) or {}
« no previous file with comments | « no previous file | scripts/slave/recipes/chromium.expected/dynamic_swarmed_sharded_failed_isolated_script_test.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698