Index: masters/master.chromium.memory/master_win_cfg.py |
diff --git a/masters/master.chromium.memory/master_win_cfg.py b/masters/master.chromium.memory/master_win_cfg.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8c8b64c3d064a1187c2f7756c066b22600405f9c |
--- /dev/null |
+++ b/masters/master.chromium.memory/master_win_cfg.py |
@@ -0,0 +1,129 @@ |
+# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+from master import master_config |
+from master.factory import chromium_factory |
+ |
+defaults = {} |
+ |
+helper = master_config.Helper(defaults) |
+B = helper.Builder |
+F = helper.Factory |
+S = helper.Scheduler |
+T = helper.Triggerable |
+ |
+def win(): |
+ return chromium_factory.ChromiumFactory('src/out', 'win32') |
+ |
+defaults['category'] = '4win asan' |
+ |
+# |
+# Main asan release scheduler for src/ |
+# |
+S('win_asan_rel', branch='src', treeStableTimer=60) |
+ |
+# |
+# Triggerable scheduler for the rel asan builder |
+# |
+T('win_asan_rel_trigger') |
+ |
+win_asan_archive = master_config.GetArchiveUrl('ChromiumMemory', |
+ 'Win ASAN Builder', |
+ 'Win_ASAN_Builder', |
+ 'win32') |
+ |
+# tests_1 and tests_2 are lists like: |
+# (build_target_name, test_name) |
+# This would be much less ugly if there was a naming convention in place for |
nsylvain
2012/11/27 00:23:15
why not spelling them all out? This seems a bit ov
iannucci
2012/11/27 01:39:13
I'll add aliases so that this list becomes one-dim
|
+# these things. |
+tests_1 = [ |
+ (x+'_unittests', x) for x in [ |
+ 'base', |
+ 'cacheinvalidation', |
+ 'crypto', |
+ 'gpu', |
+ 'jingle', |
+ 'net'] |
+ ] + [ |
+ (x+'_tests', x) for x in [ |
+ 'safe_browsing'] |
+ ] + [ |
+ (x, x) for x in [ |
+ 'browser_tests'] |
+ ] |
+ |
+tests_2 = [ |
+ (x+'_unittests', x) for x in [ |
+ 'googleurl', |
+ 'media', |
+ 'printing', |
+ 'remoting'] |
+ ] + [ |
+ (x+'_tests', x) for x in [ |
+ 'unit'] |
+ ] + [ |
+ (x, x) for x in [ |
+ 'browser_tests', |
+ 'content_browsertests', |
+ 'ppapi_unittests'] |
+ ] |
+ |
+# |
+# Windows ASAN Rel Builder |
+# |
+win_asan_rel_options = [ |
+ '--compiler=goma', |
+ '--build-tool=ninja', |
+ ]+list( # extract the build target names from the tests_[12] |
+ zip(*tests_1)[0] |
+ )+list( |
+ zip(*tests_2)[0] |
+ ) |
+ |
+B('Win ASAN Builder', 'win_asan_rel', 'compile', 'win_asan_rel', |
+ auto_reboot=False, notify_on_missing=True) |
+F('win_asan_rel', win().ChromiumASANFactory( |
+ slave_type='Builder', |
+ options=win_asan_rel_options, |
+ compile_timeout=4800, |
nsylvain
2012/11/27 00:23:15
do you think this is necessary? Does it really tak
iannucci
2012/11/27 01:39:13
I added that after it timed out on my bare metal m
|
+ factory_properties={ |
+ 'asan': True, |
+ 'gclient_env': { |
+ 'GYP_DEFINES': ( |
+ 'asan=1 win_z7=1 chromium_win_pch=0 ' |
+ 'component=static_library '), |
+ 'GYP_GENERATORS': 'ninja', }, |
+ 'trigger': 'win_asan_rel_trigger' })) |
+ |
+# |
+# Win ASAN Rel testers |
+# |
+B('Win ASAN Tests (1)', 'win_asan_rel_tests_1', 'testers', |
+ 'win_asan_rel_trigger', notify_on_missing=True) |
+F('win_asan_rel_tests_1', win().ChromiumASANFactory( |
+ slave_type='Tester', |
+ build_url=win_asan_archive, |
+ tests=list(zip(*tests_1)[1]), # extract the tests from tests_1 |
+ factory_properties={ |
+ 'asan': True, |
+ 'browser_total_shards': 2, |
+ 'browser_shard_index': 1, |
+ 'testing_env': { |
+ 'CHROME_ALLOCATOR': 'WINHEAP'}})) |
+ |
+B('Win ASAN Tests (2)', 'win_asan_rel_tests_2', 'testers', |
+ 'win_asan_rel_trigger', notify_on_missing=True) |
+F('win_asan_rel_tests_2', win().ChromiumASANFactory( |
+ slave_type='Tester', |
+ build_url=win_asan_archive, |
+ tests=list(zip(*tests_2)[1]), # extract the tests from tests_2 |
+ factory_properties={ |
+ 'asan': True, |
+ 'browser_total_shards': 2, |
+ 'browser_shard_index': 2, |
+ 'testing_env': { |
+ 'CHROME_ALLOCATOR': 'WINHEAP'}})) |
+ |
+def Update(config, active_master, c): |
+ return helper.Update(c) |