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

Unified Diff: scripts/slave/recipe_modules/test_utils/test_api.py

Issue 2336293002: Updating swarming api to check for chartjson results from a finished (Closed)
Patch Set: Relanding CL Created 4 years, 3 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
« no previous file with comments | « scripts/slave/recipe_modules/swarming/api.py ('k') | scripts/slave/recipes/chromium.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: scripts/slave/recipe_modules/test_utils/test_api.py
diff --git a/scripts/slave/recipe_modules/test_utils/test_api.py b/scripts/slave/recipe_modules/test_utils/test_api.py
index e83f77bcde154f18be8bdc51a863b6ec3cc1e1a0..958220c933d31a457dece03d9405596420604e4a 100644
--- a/scripts/slave/recipe_modules/test_utils/test_api.py
+++ b/scripts/slave/recipe_modules/test_utils/test_api.py
@@ -116,11 +116,14 @@ class TestUtilsTestApi(recipe_test_api.RecipeTestApi):
shards=1, swarming_internal_failure=False,
isolated_script_passing=True, valid=True,
missing_shards=[],
- empty_shards=[]):
+ empty_shards=[],
+ output_chartjson=False):
"""Produces a test results' compatible json for isolated script tests. """
per_shard_results = []
+ per_shard_chartjson_results = []
for i in xrange(shards):
jsonish_results = {}
+ chartjsonish_results = {}
jsonish_results['valid'] = valid
# Keep shard 0's results equivalent to the old code to minimize
# expectation diffs.
@@ -134,7 +137,11 @@ class TestUtilsTestApi(recipe_test_api.RecipeTestApi):
jsonish_results['failures'] = tests_run
jsonish_results['successes'] = []
jsonish_results['times'] = {t : 0.1 for t in tests_run}
+ chartjsonish_results['dummy'] = 'dummy%d' % i
+ chartjsonish_results['charts'] = {'entry%d' % idx: 'chart%d' % idx,
+ 'entry%d' % (idx + 1): 'chart%d' % (idx + 1)}
per_shard_results.append(jsonish_results)
+ per_shard_chartjson_results.append(chartjsonish_results)
if swarming:
jsonish_shards = []
files_dict = {}
@@ -143,14 +150,28 @@ class TestUtilsTestApi(recipe_test_api.RecipeTestApi):
'failure': not passing,
'internal_failure': swarming_internal_failure
})
- if i not in missing_shards:
- swarming_path = str(i)
- swarming_path += '\\output.json' if is_win else '/output.json'
- if i not in empty_shards:
- files_dict[swarming_path] = json.dumps(per_shard_results[i])
- else:
- # Simulate a complete harness failure.
- files_dict[swarming_path] = ''
+ swarming_path = str(i)
+ swarming_path += '\\output.json' if is_win else '/output.json'
+
+ chartjson_swarming_path = str(i)
+ chartjson_swarming_path += \
+ '\\chartjson-output.json' \
+ if is_win else '/chartjson-output.json'
+
+ # Determine what output we are writing and if it is empty or not
+ output_missing = i in missing_shards and not output_chartjson
+ chartjson_output_missing = i in missing_shards and output_chartjson
+ output_empty = i in empty_shards and not output_chartjson
+ chartjson_output_empty = i in empty_shards and output_chartjson
+
+ if not output_missing:
+ files_dict[swarming_path] = \
+ '' if output_empty else json.dumps(per_shard_results[i])
+ if not chartjson_output_missing and output_chartjson:
+ files_dict[chartjson_swarming_path] = \
+ '' if chartjson_output_empty \
+ else json.dumps(per_shard_chartjson_results[i])
+
jsonish_summary = {'shards': jsonish_shards}
files_dict['summary.json'] = json.dumps(jsonish_summary)
return self.m.raw_io.output_dir(files_dict)
« no previous file with comments | « scripts/slave/recipe_modules/swarming/api.py ('k') | scripts/slave/recipes/chromium.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698