summaryrefslogtreecommitdiffstats
path: root/webkit/tools/layout_tests/run_webkit_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/tools/layout_tests/run_webkit_tests.py')
-rwxr-xr-xwebkit/tools/layout_tests/run_webkit_tests.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/webkit/tools/layout_tests/run_webkit_tests.py b/webkit/tools/layout_tests/run_webkit_tests.py
index 1b09bd2..89af345 100755
--- a/webkit/tools/layout_tests/run_webkit_tests.py
+++ b/webkit/tools/layout_tests/run_webkit_tests.py
@@ -28,6 +28,7 @@ import optparse
import os
import Queue
import random
+import re
import shutil
import subprocess
import sys
@@ -39,6 +40,7 @@ import google.path_utils
from layout_package import compare_failures
from layout_package import test_expectations
from layout_package import http_server
+from layout_package import json_results_generator
from layout_package import path_utils
from layout_package import platform_utils
from layout_package import test_failures
@@ -575,6 +577,9 @@ class TestRunner:
# Write summaries to stdout.
self._PrintResults(failures, sys.stdout)
+ if self._options.verbose:
+ self._WriteJSONFiles(failures, individual_test_timings);
+
# Write the same data to a log file.
out_filename = os.path.join(self._options.results_directory, "score.txt")
output_file = open(out_filename, "w")
@@ -591,6 +596,33 @@ class TestRunner:
sys.stderr.flush()
return len(regressions)
+ def _WriteJSONFiles(self, failures, individual_test_timings):
+ # Write a json file of the test_expectations.txt file for the layout tests
+ # dashboard.
+ expectations_file = open(os.path.join(self._options.results_directory,
+ "expectations.json"), "w")
+ # TODO(ojan): Generate JSON using a JSON library instead of relying on
+ # GetExpectationsForAllPlatforms returning an object that only uses
+ # primitive types.
+ # Strip whitespace to reduce filesize.
+ expectations_json = re.sub(r'\s+', '',
+ repr(self._expectations.GetExpectationsForAllPlatforms()))
+ expectations_file.write(("ADD_EXPECTATIONS(" + expectations_json + ");"))
+ expectations_file.close()
+
+ results_file_path = os.path.join(self._options.results_directory,
+ "results.json")
+ # TODO(ojan): get these from the bot
+ builder_name = "WebKitBuilder"
+ build_number = "12346"
+ json_generator = json_results_generator.JSONResultsGenerator(failures,
+ individual_test_timings, builder_name, build_number, results_file_path)
+ results_json = json_generator.GetJSON()
+
+ results_file = open(results_file_path, "w")
+ results_file.write(results_json)
+ results_file.close()
+
def _PrintTimingStatistics(self, directory_test_timings,
individual_test_timings, failures):
self._PrintAggregateTestStatistics(individual_test_timings)