Index: tools/buildbot_spec.py |
diff --git a/tools/buildbot_spec.py b/tools/buildbot_spec.py |
index 8204c6d6dcf3daaa07ad777d4ac525184d62cf24..9830e4528961ce9cd15366fe8751af89bd49eb9f 100755 |
--- a/tools/buildbot_spec.py |
+++ b/tools/buildbot_spec.py |
@@ -24,6 +24,10 @@ import dm_flags |
import nanobench_flags |
+CONFIG_DEBUG = 'Debug' |
+CONFIG_RELEASE = 'Release' |
+ |
+ |
def lineno(): |
caller = inspect.stack()[1] # Up one level to our caller. |
return inspect.getframeinfo(caller[0]).lineno |
@@ -150,7 +154,12 @@ def gyp_defines(builder_dict): |
cov_skip.extend([lineno(), lineno() + 1]) |
def get_extra_env_vars(builder_dict): |
env = {} |
- if builder_dict.get('compiler') == 'Clang': |
+ if builder_dict.get('configuration') == 'Coverage': |
+ # We have to use Clang 3.6 because earlier versions do not support the |
+ # compile flags we use and 3.7 and 3.8 hit asserts during compilation. |
+ env['CC'] = '/usr/bin/clang-3.6' |
+ env['CXX'] = '/usr/bin/clang++-3.6' |
+ elif builder_dict.get('compiler') == 'Clang': |
env['CC'] = '/usr/bin/clang' |
env['CXX'] = '/usr/bin/clang++' |
return env |
@@ -232,6 +241,44 @@ def get_builder_spec(builder_name): |
device = device_cfg(builder_dict) |
if device: |
rv['device_cfg'] = device |
+ |
+ role = builder_dict['role'] |
+ if role == builder_name_schema.BUILDER_ROLE_HOUSEKEEPER: |
+ configuration = CONFIG_RELEASE |
+ else: |
+ configuration = builder_dict.get( |
+ 'configuration', CONFIG_DEBUG) |
+ arch = (builder_dict.get('arch') or builder_dict.get('target_arch')) |
+ if ('Win' in builder_dict.get('os', '') and arch == 'x86_64'): |
+ configuration += '_x64' |
+ rv['configuration'] = configuration |
+ rv['do_test_steps'] = role == builder_name_schema.BUILDER_ROLE_TEST |
+ rv['do_perf_steps'] = (role == builder_name_schema.BUILDER_ROLE_PERF or |
+ (role == builder_name_schema.BUILDER_ROLE_TEST and |
+ configuration == CONFIG_DEBUG) or |
+ 'Valgrind' in builder_name) |
+ |
+ # Do we upload perf results? |
+ upload_perf_results = False |
+ if role == builder_name_schema.BUILDER_ROLE_PERF: |
+ upload_perf_results = True |
+ rv['upload_perf_results'] = upload_perf_results |
+ |
+ # Do we upload correctness results? |
+ skip_upload_bots = [ |
+ 'ASAN', |
+ 'Coverage', |
+ 'TSAN', |
+ 'UBSAN', |
+ 'Valgrind', |
+ ] |
+ upload_dm_results = True |
+ for s in skip_upload_bots: |
+ if s in builder_name: |
+ upload_dm_results = False |
+ break |
+ rv['upload_dm_results'] = upload_dm_results |
+ |
return rv |