Index: Tools/TestResultServer/handlers/buildershandler.py |
diff --git a/Tools/TestResultServer/handlers/buildershandler.py b/Tools/TestResultServer/handlers/buildershandler.py |
index c6dc7472f99fa1ac43f5789ca8cb68ae1d59a5e6..57136a2d7c9763a3d1b8544780c6aff6b1af2dc9 100644 |
--- a/Tools/TestResultServer/handlers/buildershandler.py |
+++ b/Tools/TestResultServer/handlers/buildershandler.py |
@@ -29,6 +29,7 @@ |
import datetime |
import json |
import logging |
+import re |
import sys |
import traceback |
import urllib2 |
@@ -48,6 +49,33 @@ MASTERS = [ |
{'name': 'V8', 'url': 'http://build.chromium.org/p/client.v8', 'groups': ['@ToT V8']}, |
] |
+# Buildbot steps that have test in the name, but don't run tests. |
+NON_TEST_STEP_NAMES = [ |
+ 'archive', |
+ 'Run tests', |
+ 'find isolated tests', |
+ 'read test spec', |
+ 'Download latest chromedriver', |
+ 'compile tests', |
+ 'create_coverage_', |
+ 'update test result log', |
+ 'memory test:', |
+ 'install_', |
+] |
+ |
+# Buildbot steps that run tests but don't upload results to the flakiness dashboard server. |
+# FIXME: These should be fixed to upload and then removed from this list. |
+TEST_STEPS_THAT_DO_NOT_UPLOAD_YET = [ |
+ 'java_tests(chrome', |
+ 'python_tests(chrome', |
+ 'run_all_tests.py', |
+ 'test_report', |
+ 'test CronetSample', |
+ 'test_mini_installer', |
+ 'telemetry_unittests', |
+ 'webkit_python_tests', |
+ 'webkit_unit_tests', |
+] |
class FetchBuildersException(Exception): pass |
@@ -142,7 +170,18 @@ def fetch_buildbot_data(masters, force_update=False): |
logging.info('Skipping build %s on builder %s due to empty data', latest_build, builder) |
for step in build['steps']: |
step_name = step['name'] |
- is_test_step = 'test' in step_name and 'archive' not in step_name and 'Run tests' not in step_name |
+ |
+ is_test_step = 'test' in step_name |
+ for name in NON_TEST_STEP_NAMES: |
Dirk Pranke
2014/06/09 19:06:12
to replace lines 174-183:
if not 'test' in step_n
ojan
2014/06/09 21:39:16
Indeed! Also, I realized I forgot to run the unitt
|
+ if name in step_name: |
+ is_test_step = False |
+ break |
+ |
+ # Hackity hack. But there's not a better way to exclude certain test steps without |
+ # explicitly listing them all. Maybe that would be better? |
+ if is_test_step and re.search('/_only|_ignore|_perf$/', step_name): |
+ is_test_step = False |
+ |
if not is_test_step: |
continue |
@@ -155,7 +194,7 @@ def fetch_buildbot_data(masters, force_update=False): |
for builders in tests_object.values(): |
builders['builders'].sort() |
- output_data = {'masters': master_data} |
+ output_data = {'masters': master_data, 'no_upload_test_types': TEST_STEPS_THAT_DO_NOT_UPLOAD_YET} |
delta = datetime.datetime.now() - start_time |