| 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..0f79e0d774659ec91183b2aa3b54f8c015ae3688 100644
|
| --- a/scripts/slave/recipe_modules/chromium_tests/steps.py
|
| +++ b/scripts/slave/recipe_modules/chromium_tests/steps.py
|
| @@ -3,6 +3,7 @@
|
| # found in the LICENSE file.
|
|
|
| import datetime
|
| +import json
|
| import re
|
| import string
|
|
|
| @@ -1088,6 +1089,7 @@ class SwarmingIsolatedScriptTest(SwarmingTest):
|
| if not failures and step_result.retcode != 0:
|
| failures = ['%s (entire test suite)' % self.name]
|
| valid = False
|
| +
|
| except (ValueError, KeyError) as e:
|
| step_result.presentation.logs['invalid_results_exc'] = [str(e)]
|
| valid = False
|
| @@ -1096,8 +1098,46 @@ class SwarmingIsolatedScriptTest(SwarmingTest):
|
| step_result.presentation.step_text += api.test_utils.format_step_text([
|
| ['failures:', failures]
|
| ])
|
| + # Check for chartjson results and upload to results dashboard if present.
|
| + self._output_chartjson_results_if_present(api, step_result)
|
| return valid, failures
|
|
|
| + def _output_chartjson_results_if_present(self, api, step_result):
|
| + results = \
|
| + getattr(step_result, 'isolated_script_chartjson_results', None) or {}
|
| + try:
|
| + if not 'charts' in results:
|
| + print 'Info: No chart json present'
|
| + return
|
| +
|
| + if not results.get('enabled', True):
|
| + print 'Info: Benchmark disabled, not sending results to dashboard'
|
| + return
|
| +
|
| + """Produces a step that uploads results to dashboard"""
|
| + args = [
|
| + '--results', json.dumps(results),
|
| + '--perf-id', api.properties['perf-id'],
|
| + '--results-url', api.properties['results-url'],
|
| + '--build-dir', api.chromium.c.build_dir,
|
| + '--got-revision-cp', api.properties['got_revision_cp'],
|
| + '--version', api.properties['version'],
|
| + '--git-revision', api.properties['git_revision'],
|
| + '--buildername', api.properties['buildername'],
|
| + '--buildnumber', api.properties['buildnumber'],
|
| + '--got-webrtc-revision', api.properties['got_webrtc_revision'],
|
| + '--got-v8-revision', api.properties['got_v8_revision'],
|
| + ]
|
| +
|
| + api.python(
|
| + 'Upload Perf Dashboard Results',
|
| + api.chromium.package_repo_resource(
|
| + 'scripts', 'slave', 'upload_perf_dashboard_results.py'),
|
| + args)
|
| +
|
| + except (ValueError, KeyError) as e:
|
| + print 'Error: Unable to upload chartjson results to perf dashboard'
|
| +
|
|
|
| def generate_isolated_script(api, chromium_tests_api, mastername, buildername,
|
| test_spec, bot_update_step, enable_swarming=False,
|
|
|