Index: scripts/slave/recipe_modules/test_results/resources/upload_test_results.py |
diff --git a/scripts/slave/recipe_modules/test_results/resources/upload_test_results.py b/scripts/slave/recipe_modules/test_results/resources/upload_test_results.py |
index f86ba390ddbf494242841b6f800c03dc7717cdb9..899428afc96b54f2de090f1960bd3daaf555429b 100755 |
--- a/scripts/slave/recipe_modules/test_results/resources/upload_test_results.py |
+++ b/scripts/slave/recipe_modules/test_results/resources/upload_test_results.py |
@@ -49,8 +49,35 @@ def get_results_map_from_json(gtest_json): |
return test_results_map |
-def generate_json_results_file(gtest_json, builder_name, build_number, |
- results_directory, chrome_revision, master_name): |
+def generate_json_results_file_for_json( |
+ results_json, builder_name, build_number, |
+ results_directory, chrome_revision, master_name): |
+ """Generates JSON results file from the given |results_json|. |
+ |
+ Args: |
+ results_json: the raw test results object that follows full json results |
+ format. |
+ |
+ Returns: |
+ A list that contains a single tuple (<file name>, <file path>). The tuple |
+ represents the full test results file. |
+ """ |
+ if not os.path.exists(results_directory): |
+ os.makedirs(results_directory) |
+ json_results_file_path = os.path.abspath( |
+ os.path.join(results_directory, FULL_RESULTS_FILENAME)) |
+ results_json['builder_name'] = builder_name |
+ results_json['build_number'] = build_number |
+ results_json['chromium_revision'] = chrome_revision |
+ results_json['master_name'] = master_name |
+ with open(json_results_file_path, 'w') as f: |
+ json.dump(results_json, f) |
+ return [(FULL_RESULTS_FILENAME, json_results_file_path)] |
+ |
+ |
+def generate_json_results_file_for_gtest( |
+ gtest_json, builder_name, build_number, results_directory, chrome_revision, |
+ master_name): |
"""Generates JSON results files from the given |gtest_json|. |
Args: |
@@ -138,11 +165,16 @@ def main(args): |
content = json.loads(results_json) |
if content.get('version', 0) >= 3: |
print 'Input JSON file probably has full json results format' |
- files = [(FULL_RESULTS_FILENAME, os.path.abspath(options.input_json))] |
+ files = generate_json_results_file_for_json( |
+ content, builder_name=options.builder_name, |
+ build_number=options.build_number, |
+ results_directory=options.results_directory, |
+ chrome_revision=options.chrome_revision, |
+ master_name=options.master_name) |
else: |
print ('Input JSON file probably has gtest format. Converting to full json' |
' results format') |
- files = generate_json_results_file( |
+ files = generate_json_results_file_for_gtest( |
results_json, builder_name=options.builder_name, |
build_number=options.build_number, |
results_directory=options.results_directory, |