| OLD | NEW |
| (Empty) |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 from buildbot.scheduler import Triggerable | |
| 6 from buildbot.scheduler import Scheduler | |
| 7 | |
| 8 from common import chromium_utils | |
| 9 | |
| 10 # These modules come from scripts/master, which must be in the PYTHONPATH. | |
| 11 from master import gitiles_poller | |
| 12 from master import master_config | |
| 13 from master import master_utils | |
| 14 from master import slaves_list | |
| 15 | |
| 16 from master.factory import annotator_factory | |
| 17 from master.factory import chromium_factory | |
| 18 | |
| 19 import config | |
| 20 import master_site_config | |
| 21 | |
| 22 ActiveMaster = master_site_config.ChromiumMemoryFull | |
| 23 | |
| 24 c = BuildmasterConfig = {} | |
| 25 c['logCompressionLimit'] = False | |
| 26 | |
| 27 config.DatabaseSetup(c, require_dbconfig=ActiveMaster.is_production_host) | |
| 28 | |
| 29 ####### CHANGESOURCES | |
| 30 | |
| 31 master_poller = gitiles_poller.GitilesPoller( | |
| 32 'https://chromium.googlesource.com/chromium/src') | |
| 33 | |
| 34 c['change_source'] = [master_poller] | |
| 35 | |
| 36 | |
| 37 ####### SCHEDULERS | |
| 38 | |
| 39 ## configure the Schedulers | |
| 40 | |
| 41 # Main scheduler for all changes in trunk. | |
| 42 s_chromium = Scheduler(name='chromium', | |
| 43 branch='master', | |
| 44 treeStableTimer=60, | |
| 45 builderNames=[# Builders | |
| 46 'Chromium Windows Builder (DrMemory)', | |
| 47 'Chromium Windows Builder (DrMemory x64)', | |
| 48 'Chromium Linux TSan Builder', | |
| 49 'Chromium Linux MSan Builder', | |
| 50 'Chromium Linux ChromeOS MSan Builder', | |
| 51 ]) | |
| 52 | |
| 53 # Windows Dr. Memory build-bot list | |
| 54 t_drmemory_bots=[ | |
| 55 'Windows Unit (DrMemory)', | |
| 56 'Windows Content Browser (DrMemory)', | |
| 57 ] | |
| 58 | |
| 59 # Windows Unit (DrMemory full) | |
| 60 WINDOWS_UNIT_DRMEMORY_FULL_TESTERS = 5 | |
| 61 for i in range(WINDOWS_UNIT_DRMEMORY_FULL_TESTERS): | |
| 62 t_drmemory_bots.append('Windows Unit (DrMemory full) (%d)' % (i+1)) | |
| 63 | |
| 64 # Windows Content Browser (DrMemory full) | |
| 65 WINDOWS_CONTENT_BROWSER_DRMEMORY_FULL_TESTERS = 6 | |
| 66 for i in range(WINDOWS_CONTENT_BROWSER_DRMEMORY_FULL_TESTERS): | |
| 67 t_drmemory_bots.append('Windows Content Browser (DrMemory full) (%d)' % (i+1
)) | |
| 68 | |
| 69 # Windows Browser (DrMemory full) | |
| 70 WINDOWS_BROWSER_DRMEMORY_FULL_TESTERS = 12 | |
| 71 for i in range(WINDOWS_BROWSER_DRMEMORY_FULL_TESTERS): | |
| 72 t_drmemory_bots.append('Windows Browser (DrMemory full) (%d)' % (i+1)) | |
| 73 | |
| 74 # Windows Dr. Memory x64 build-bot list | |
| 75 t_drmemory_64_bots=[ | |
| 76 'Windows Unit (DrMemory x64)', | |
| 77 ] | |
| 78 | |
| 79 s_chromium_win_drmemory_trigger = Triggerable( | |
| 80 'chromium_win_drmemory', | |
| 81 t_drmemory_bots) | |
| 82 | |
| 83 s_chromium_win_drmemory_64_trigger = Triggerable( | |
| 84 'chromium_win_drmemory_64', | |
| 85 t_drmemory_64_bots) | |
| 86 | |
| 87 s_chromium_linux_tsan = Triggerable( | |
| 88 name='linux_tsan', | |
| 89 builderNames=['Linux TSan Tests']) | |
| 90 | |
| 91 s_chromium_linux_msan = Triggerable( | |
| 92 name='linux_msan', | |
| 93 builderNames=['Linux MSan Tests']) | |
| 94 | |
| 95 s_chromium_linux_chromeos_msan = Triggerable( | |
| 96 name='linux_chromeos_msan', | |
| 97 builderNames=['Linux ChromeOS MSan Tests']) | |
| 98 | |
| 99 c['schedulers'] = [s_chromium, | |
| 100 s_chromium_win_drmemory_trigger, | |
| 101 s_chromium_win_drmemory_64_trigger, | |
| 102 s_chromium_linux_tsan, | |
| 103 s_chromium_linux_msan, | |
| 104 s_chromium_linux_chromeos_msan] | |
| 105 | |
| 106 ####### BUILDERS | |
| 107 | |
| 108 # buildbot/process/factory.py provides several BuildFactory classes you can | |
| 109 # start with, which implement build processes for common targets (GNU | |
| 110 # autoconf projects, CPAN perl modules, etc). The factory.BuildFactory is the | |
| 111 # base class, and is configured with a series of BuildSteps. When the build | |
| 112 # is run, the appropriate buildslave is told to execute each Step in turn. | |
| 113 | |
| 114 # the first BuildStep is typically responsible for obtaining a copy of the | |
| 115 # sources. There are source-obtaining Steps in buildbot/process/step.py for | |
| 116 # CVS, SVN, and others. | |
| 117 | |
| 118 builders = [] | |
| 119 | |
| 120 # ---------------------------------------------------------------------------- | |
| 121 # FACTORIES | |
| 122 | |
| 123 m_win = chromium_factory.ChromiumFactory('src/build', 'win32') | |
| 124 m_win_ninja = chromium_factory.ChromiumFactory('src/out', 'win32') | |
| 125 m_linux = chromium_factory.ChromiumFactory('src/out', 'linux2') | |
| 126 m_chromeos = chromium_factory.ChromiumFactory('src/out', 'linux2') | |
| 127 | |
| 128 # Some shortcut to simplify the code below. | |
| 129 F_WIN = m_win.ChromiumFactory | |
| 130 F_WIN_NINJA = m_win_ninja.ChromiumFactory | |
| 131 F_LINUX = m_linux.ChromiumFactory | |
| 132 F_CR_OS = m_chromeos.ChromiumOSFactory | |
| 133 | |
| 134 m_annotator = annotator_factory.AnnotatorFactory() | |
| 135 | |
| 136 chromium_win_drmemory_archive = master_config.GetGSUtilUrl( | |
| 137 'chromium-memory-full', 'drm-cr') | |
| 138 | |
| 139 chromium_win_drmemory_64_archive = master_config.GetGSUtilUrl( | |
| 140 'chromium-memory-full', 'drm-cr-64') | |
| 141 | |
| 142 # IMPORTANT NOTE about adding new tests. | |
| 143 # If you want to add a new test, make sure it's: | |
| 144 # a) buildable, | |
| 145 # b) runnable by all the tools, | |
| 146 # c) green locally under all tools (at least mostly) and | |
| 147 # d) the e-mail notifier is configured to watch for its failures. | |
| 148 # [See details below] | |
| 149 # | |
| 150 # Also, please do your best to estimate the time it takes to run the new test | |
| 151 # under the tool and order the tests in a short-job-first manner if possible. | |
| 152 # | |
| 153 # Regarding (a), | |
| 154 # New DrMemory/Win tests must first be added as dependencies to the | |
| 155 # 'chromium_builder_dbg_drmemory_win' target in src/build/all.gyp; | |
| 156 # | |
| 157 # Regarding (b), | |
| 158 # 'chrome_tests.py' must be updated to handle the test name, | |
| 159 # without the 'TOOL_' prefix, where 'chrome_tests.py' is located | |
| 160 # at tools/valgrind/ for other tools. | |
| 161 # | |
| 162 # Regarding (d), | |
| 163 # See notifier_cfg.py for the existing tests and see the 'category' of the | |
| 164 # builder you're dealing with. | |
| 165 # | |
| 166 # Please coordinate with the current and upcoming memory sheriff and help them | |
| 167 # get the new tests green on all the bots after the master restart. | |
| 168 | |
| 169 # ThreadSanitizer bots: | |
| 170 # Dr.Memory bots: | |
| 171 f_chromium_rel_win_drmemory_builder = F_WIN_NINJA( | |
| 172 # TODO(timurrrr): reuse the builder for TSan/Win too once | |
| 173 # http://crbug.com/108155 is resolved. | |
| 174 slave_type='Builder', | |
| 175 target='Release', | |
| 176 # TODO(bruening): remove "_dbg" from this name in all.gyp as it is | |
| 177 # not limited to just Debug. | |
| 178 # TODO(timurrrr): Might wanna remove chromium_builder_dbg_drmemory_win | |
| 179 # entirely as ninja supports target lists similar to what we always had | |
| 180 # on Linux. | |
| 181 options=['--build-tool=ninja', '--', 'chromium_builder_dbg_drmemory_win'], | |
| 182 factory_properties={ | |
| 183 'gclient_env': {'GYP_DEFINES': ('build_for_tool=drmemory ' | |
| 184 'component=shared_library '), | |
| 185 'GYP_GENERATORS': 'ninja'}, | |
| 186 'package_pdb_files': True, | |
| 187 'trigger': 'chromium_win_drmemory', | |
| 188 'build_url': chromium_win_drmemory_archive, | |
| 189 'use_mb': True, | |
| 190 } | |
| 191 ) | |
| 192 | |
| 193 f_chromium_rel_win_drmemory = F_WIN_NINJA( | |
| 194 slave_type='Tester', | |
| 195 target='Release', | |
| 196 build_url=chromium_win_drmemory_archive, | |
| 197 # See IMPORTANT NOTE above before adding new tests. | |
| 198 tests=[ | |
| 199 'drmemory_light_url', | |
| 200 'drmemory_light_printing', | |
| 201 'drmemory_light_media', | |
| 202 'drmemory_light_midi', | |
| 203 'drmemory_light_sql', | |
| 204 'drmemory_light_crypto', | |
| 205 'drmemory_light_remoting', | |
| 206 'drmemory_light_ipc_tests', | |
| 207 'drmemory_light_base_unittests', | |
| 208 'drmemory_light_net', | |
| 209 'drmemory_light_components', | |
| 210 'drmemory_light_device', | |
| 211 'drmemory_light_jingle', | |
| 212 'drmemory_light_gcm', | |
| 213 'drmemory_light_gpu', | |
| 214 'drmemory_light_content', | |
| 215 'drmemory_light_cacheinvalidation', | |
| 216 'drmemory_light_addressinput', | |
| 217 'drmemory_light_phonenumber', | |
| 218 'drmemory_light_mojo_system', | |
| 219 'drmemory_light_mojo_public_system', | |
| 220 'drmemory_light_mojo_public_bindings', | |
| 221 'drmemory_light_mojo_public_sysperf', | |
| 222 'drmemory_light_mojo_common', | |
| 223 'drmemory_light_accessibility', | |
| 224 'drmemory_light_angle', | |
| 225 'drmemory_light_aura', | |
| 226 'drmemory_light_blink_heap', | |
| 227 'drmemory_light_blink_platform', | |
| 228 'drmemory_light_cast', | |
| 229 'drmemory_light_cc', | |
| 230 'drmemory_light_chrome_app', | |
| 231 'drmemory_light_chrome_elf', | |
| 232 'drmemory_light_chromedriver', | |
| 233 'drmemory_light_compositor', | |
| 234 'drmemory_light_courgette', | |
| 235 'drmemory_light_display', | |
| 236 'drmemory_light_extensions', | |
| 237 'drmemory_light_events', | |
| 238 'drmemory_light_gin', | |
| 239 'drmemory_light_google_apis', | |
| 240 'drmemory_light_gfx', | |
| 241 'drmemory_light_installer_util', | |
| 242 'drmemory_light_keyboard', | |
| 243 'drmemory_light_unit', | |
| 244 ], | |
| 245 ) | |
| 246 | |
| 247 # Windows Content Browser (DrMemory) | |
| 248 f_chromium_rel_win_drmemory_content = F_WIN_NINJA( | |
| 249 slave_type='Tester', | |
| 250 target='Release', | |
| 251 build_url=chromium_win_drmemory_archive, | |
| 252 tests=[ | |
| 253 'drmemory_light_content_browsertests', | |
| 254 ], | |
| 255 factory_properties={'halt_on_missing_build': True} | |
| 256 ) | |
| 257 | |
| 258 # Windows Unit (DrMemory full) (1) | |
| 259 f_chromium_rel_win_drmemory_full_1 = F_WIN_NINJA( | |
| 260 slave_type='Tester', | |
| 261 target='Release', | |
| 262 build_url=chromium_win_drmemory_archive, | |
| 263 # See IMPORTANT NOTE above before adding new tests. | |
| 264 tests=[ | |
| 265 # We split into 2 for faster reports on errors found in 1st half. | |
| 266 'drmemory_full_net_1_of_2', | |
| 267 'drmemory_full_net_2_of_2', | |
| 268 'drmemory_full_mojo_system', | |
| 269 'drmemory_full_mojo_public_system', | |
| 270 'drmemory_full_mojo_public_bindings', | |
| 271 'drmemory_full_mojo_public_sysperf', | |
| 272 'drmemory_full_mojo_common', | |
| 273 ], | |
| 274 factory_properties={'halt_on_missing_build': True}, | |
| 275 ) | |
| 276 | |
| 277 # Windows Unit (DrMemory full) (2) | |
| 278 f_chromium_rel_win_drmemory_full_2 = F_WIN_NINJA( | |
| 279 slave_type='Tester', | |
| 280 target='Release', | |
| 281 build_url=chromium_win_drmemory_archive, | |
| 282 # See IMPORTANT NOTE above before adding new tests. | |
| 283 tests=[ | |
| 284 # The 1st 3 unit_ shards are fast, so we can fit these as well: | |
| 285 'drmemory_full_media', | |
| 286 'drmemory_full_midi', | |
| 287 'drmemory_full_base_unittests', | |
| 288 # Full mode has a high memory overhead currently, so shard the tests | |
| 289 # more. | |
| 290 'drmemory_full_unit_1_of_6', | |
| 291 'drmemory_full_unit_2_of_6', | |
| 292 ], | |
| 293 factory_properties={'halt_on_missing_build': True}, | |
| 294 ) | |
| 295 | |
| 296 # Windows Unit (DrMemory full) (3) | |
| 297 f_chromium_rel_win_drmemory_full_3 = F_WIN_NINJA( | |
| 298 slave_type='Tester', | |
| 299 target='Release', | |
| 300 build_url=chromium_win_drmemory_archive, | |
| 301 # See IMPORTANT NOTE above before adding new tests. | |
| 302 tests=[ | |
| 303 # Full mode has a high memory overhead currently, so shard the tests | |
| 304 # more. | |
| 305 'drmemory_full_url', | |
| 306 'drmemory_full_printing', | |
| 307 'drmemory_full_sql', | |
| 308 'drmemory_full_crypto', | |
| 309 'drmemory_full_remoting', | |
| 310 'drmemory_full_ipc_tests', | |
| 311 'drmemory_full_gpu', | |
| 312 'drmemory_full_device', | |
| 313 'drmemory_full_jingle', | |
| 314 'drmemory_full_gcm', | |
| 315 'drmemory_full_content', | |
| 316 'drmemory_full_cacheinvalidation', | |
| 317 'drmemory_full_addressinput', | |
| 318 'drmemory_full_unit_3_of_6', | |
| 319 'drmemory_full_unit_4_of_6', | |
| 320 ], | |
| 321 factory_properties={'halt_on_missing_build': True}, | |
| 322 ) | |
| 323 | |
| 324 # Windows Unit (DrMemory full) (4) | |
| 325 f_chromium_rel_win_drmemory_full_4 = F_WIN_NINJA( | |
| 326 slave_type='Tester', | |
| 327 target='Release', | |
| 328 build_url=chromium_win_drmemory_archive, | |
| 329 # See IMPORTANT NOTE above before adding new tests. | |
| 330 tests=[ | |
| 331 # Full mode has a high memory overhead currently, so shard the tests | |
| 332 # more. | |
| 333 'drmemory_full_phonenumber', | |
| 334 'drmemory_full_unit_5_of_6', | |
| 335 'drmemory_full_unit_6_of_6', | |
| 336 ], | |
| 337 factory_properties={'halt_on_missing_build': True}, | |
| 338 ) | |
| 339 | |
| 340 # Windows Unit (DrMemory full) (5) | |
| 341 f_chromium_rel_win_drmemory_full_5 = F_WIN_NINJA( | |
| 342 slave_type='Tester', | |
| 343 target='Release', | |
| 344 build_url=chromium_win_drmemory_archive, | |
| 345 # See IMPORTANT NOTE above before adding new tests. | |
| 346 tests=[ | |
| 347 'drmemory_full_accessibility', | |
| 348 'drmemory_full_angle', | |
| 349 'drmemory_full_aura', | |
| 350 'drmemory_full_blink_heap', | |
| 351 'drmemory_full_blink_platform', | |
| 352 'drmemory_full_cast', | |
| 353 'drmemory_full_cc', | |
| 354 'drmemory_full_chrome_app', | |
| 355 'drmemory_full_chrome_elf', | |
| 356 'drmemory_full_chromedriver', | |
| 357 'drmemory_full_compositor', | |
| 358 'drmemory_full_courgette', | |
| 359 'drmemory_full_display', | |
| 360 'drmemory_full_extensions', | |
| 361 'drmemory_full_events', | |
| 362 'drmemory_full_gin', | |
| 363 'drmemory_full_google_apis', | |
| 364 'drmemory_full_gfx', | |
| 365 'drmemory_full_installer_util', | |
| 366 'drmemory_full_keyboard', | |
| 367 ], | |
| 368 factory_properties={'halt_on_missing_build': True}, | |
| 369 ) | |
| 370 | |
| 371 # DrMemory x64 Builder | |
| 372 f_chromium_rel_win_drmemory_64_builder = F_WIN_NINJA( | |
| 373 slave_type='Builder', | |
| 374 target='Release_x64', | |
| 375 # TODO(bruening): remove "_dbg" from this name in all.gyp as it is | |
| 376 # not limited to just Debug. | |
| 377 options=['--build-tool=ninja', '--', 'chromium_builder_dbg_drmemory_win'], | |
| 378 factory_properties={ | |
| 379 'gclient_env': { | |
| 380 'GYP_DEFINES' : ( | |
| 381 'build_for_tool=drmemory component=shared_library ' | |
| 382 'target_arch=x64'), | |
| 383 'GYP_GENERATORS': 'ninja', | |
| 384 }, | |
| 385 'package_pdb_files': True, | |
| 386 'trigger': 'chromium_win_drmemory_64', | |
| 387 'build_url': chromium_win_drmemory_64_archive, | |
| 388 'use_mb': True, | |
| 389 } | |
| 390 ) | |
| 391 | |
| 392 # Windows Unit (DrMemory x64) | |
| 393 f_chromium_rel_win_drmemory_64 = F_WIN_NINJA( | |
| 394 slave_type='Tester', | |
| 395 target='Release_x64', | |
| 396 build_url=chromium_win_drmemory_64_archive, | |
| 397 tests=[ | |
| 398 'drmemory_light_url', | |
| 399 'drmemory_light_printing', | |
| 400 'drmemory_light_media', | |
| 401 'drmemory_light_midi', | |
| 402 'drmemory_light_sql', | |
| 403 'drmemory_light_crypto', | |
| 404 'drmemory_light_remoting', | |
| 405 'drmemory_light_ipc_tests', | |
| 406 'drmemory_light_base_unittests', | |
| 407 'drmemory_light_net', | |
| 408 'drmemory_light_components', | |
| 409 'drmemory_light_device', | |
| 410 'drmemory_light_jingle', | |
| 411 'drmemory_light_gcm', | |
| 412 'drmemory_light_gpu', | |
| 413 'drmemory_light_content', | |
| 414 'drmemory_light_cacheinvalidation', | |
| 415 'drmemory_light_addressinput', | |
| 416 'drmemory_light_phonenumber', | |
| 417 'drmemory_light_mojo_system', | |
| 418 'drmemory_light_mojo_public_system', | |
| 419 'drmemory_light_mojo_public_bindings', | |
| 420 'drmemory_light_mojo_public_sysperf', | |
| 421 'drmemory_light_mojo_common', | |
| 422 'drmemory_light_accessibility', | |
| 423 'drmemory_light_angle', | |
| 424 'drmemory_light_aura', | |
| 425 'drmemory_light_blink_heap', | |
| 426 'drmemory_light_blink_platform', | |
| 427 'drmemory_light_cast', | |
| 428 'drmemory_light_cc', | |
| 429 'drmemory_light_chrome_app', | |
| 430 'drmemory_light_chrome_elf', | |
| 431 'drmemory_light_chromedriver', | |
| 432 'drmemory_light_compositor', | |
| 433 'drmemory_light_courgette', | |
| 434 'drmemory_light_display', | |
| 435 'drmemory_light_extensions', | |
| 436 'drmemory_light_events', | |
| 437 'drmemory_light_gin', | |
| 438 'drmemory_light_google_apis', | |
| 439 'drmemory_light_gfx', | |
| 440 'drmemory_light_installer_util', | |
| 441 'drmemory_light_keyboard', | |
| 442 'drmemory_light_unit', | |
| 443 ], | |
| 444 factory_properties={'halt_on_missing_build': True} | |
| 445 ) | |
| 446 | |
| 447 # Tests that are single-machine shard-safe. | |
| 448 sharded_tests = [ | |
| 449 'aura_unittests', | |
| 450 'base_unittests', | |
| 451 'browser_tests', | |
| 452 'cacheinvalidation_unittests', | |
| 453 'cc_unittests', | |
| 454 'chromedriver_tests', | |
| 455 'chromedriver_unittests', | |
| 456 'components_unittests', | |
| 457 'content_browsertests', | |
| 458 'content_unittests', | |
| 459 'crypto_unittests', | |
| 460 'device_unittests', | |
| 461 'display_unittests', | |
| 462 'events_unittests', | |
| 463 'extensions_unittests', | |
| 464 'gcm_unit_tests', | |
| 465 'gpu_unittests', | |
| 466 'jingle_unittests', | |
| 467 'media_unittests', | |
| 468 'midi_unittests', | |
| 469 'net_unittests', | |
| 470 'ppapi_unittests', | |
| 471 'printing_unittests', | |
| 472 'remoting_unittests', | |
| 473 'sync_integration_tests', | |
| 474 'sync_unit_tests', | |
| 475 'ui_base_unittests', | |
| 476 'ui_touch_selection_unittests', | |
| 477 'unit_tests', | |
| 478 'views_unittests', | |
| 479 ] | |
| 480 | |
| 481 | |
| 482 # ---------------------------------------------------------------------------- | |
| 483 # BUILDER DEFINITIONS | |
| 484 | |
| 485 # The 'builders' list defines the Builders. Each one is configured with a | |
| 486 # dictionary, using the following keys: | |
| 487 # name (required): the name used to describe this bilder | |
| 488 # slavename (required): which slave to use, must appear in c['slaves'] | |
| 489 # builddir (required): which subdirectory to run the builder in | |
| 490 # factory (required): a BuildFactory to define how the build is run | |
| 491 # periodicBuildTime (optional): if set, force a build every N seconds | |
| 492 # category (optional): it is not used in the normal 'buildbot' meaning. It is | |
| 493 # used by gatekeeper to determine which steps it should | |
| 494 # look for to close the tree. | |
| 495 # | |
| 496 | |
| 497 b_chromium_rel_win_drmemory_builder = { | |
| 498 'name': 'Chromium Windows Builder (DrMemory)', | |
| 499 # make the dir short for ninja build | |
| 500 'builddir': 'drm-cr', | |
| 501 'factory': f_chromium_rel_win_drmemory_builder, | |
| 502 'category': '6DrMemory Light|compile', | |
| 503 'auto_reboot': True, | |
| 504 } | |
| 505 | |
| 506 b_chromium_rel_win_drmemory = { | |
| 507 'name': 'Windows Unit (DrMemory)', | |
| 508 'builddir': 'chromium-dbg-win-drmemory', | |
| 509 'factory': f_chromium_rel_win_drmemory, | |
| 510 'category': '6DrMemory Light|drmemory_tester', | |
| 511 'auto_reboot': True, | |
| 512 } | |
| 513 | |
| 514 b_chromium_rel_win_drmemory_content = { | |
| 515 'name': 'Windows Content Browser (DrMemory)', | |
| 516 'builddir': 'windows-content-drm-light', | |
| 517 'factory': f_chromium_rel_win_drmemory_content, | |
| 518 'category': '6DrMemory Light|drmemory_tester', | |
| 519 'auto_reboot': True, | |
| 520 } | |
| 521 | |
| 522 b_chromium_rel_win_drmemory_full_1 = { | |
| 523 'name': 'Windows Unit (DrMemory full) (1)', | |
| 524 'builddir': 'chromium-dbg-win-drmemory-full-1', | |
| 525 'factory': f_chromium_rel_win_drmemory_full_1, | |
| 526 'category': '7DrMemory Full|drmemory_tester', | |
| 527 'auto_reboot': True, | |
| 528 } | |
| 529 | |
| 530 b_chromium_rel_win_drmemory_full_2 = { | |
| 531 'name': 'Windows Unit (DrMemory full) (2)', | |
| 532 'builddir': 'chromium-dbg-win-drmemory-full-2', | |
| 533 'factory': f_chromium_rel_win_drmemory_full_2, | |
| 534 'category': '7DrMemory Full|drmemory_tester', | |
| 535 'auto_reboot': True, | |
| 536 } | |
| 537 | |
| 538 b_chromium_rel_win_drmemory_full_3 = { | |
| 539 'name': 'Windows Unit (DrMemory full) (3)', | |
| 540 'builddir': 'chromium-dbg-win-drmemory-full-3', | |
| 541 'factory': f_chromium_rel_win_drmemory_full_3, | |
| 542 'category': '7DrMemory Full|drmemory_tester', | |
| 543 'auto_reboot': True, | |
| 544 } | |
| 545 | |
| 546 b_chromium_rel_win_drmemory_full_4 = { | |
| 547 'name': 'Windows Unit (DrMemory full) (4)', | |
| 548 'builddir': 'chromium-dbg-win-drmemory-full-4', | |
| 549 'factory': f_chromium_rel_win_drmemory_full_4, | |
| 550 'category': '7DrMemory Full|drmemory_tester', | |
| 551 'auto_reboot': True, | |
| 552 } | |
| 553 | |
| 554 b_chromium_rel_win_drmemory_full_5 = { | |
| 555 'name': 'Windows Unit (DrMemory full) (5)', | |
| 556 'builddir': 'chromium-dbg-win-drmemory-full-5', | |
| 557 'factory': f_chromium_rel_win_drmemory_full_5, | |
| 558 'category': '7DrMemory Full|drmemory_tester', | |
| 559 'auto_reboot': True, | |
| 560 } | |
| 561 | |
| 562 b_chromium_rel_win_drmemory_64_builder = { | |
| 563 'name': 'Chromium Windows Builder (DrMemory x64)', | |
| 564 'builddir': 'drm-cr-64', | |
| 565 'factory': f_chromium_rel_win_drmemory_64_builder, | |
| 566 'category': '9DrMemory x64|compile', | |
| 567 'auto_reboot': True, | |
| 568 } | |
| 569 | |
| 570 b_chromium_rel_win_drmemory_64 = { | |
| 571 'name': 'Windows Unit (DrMemory x64)', | |
| 572 'builddir': 'chromium-dbg-win-drm-64', | |
| 573 'factory': f_chromium_rel_win_drmemory_64, | |
| 574 'category': '9DrMemory x64|drmemory_tester', | |
| 575 'auto_reboot': True, | |
| 576 } | |
| 577 | |
| 578 b_chromium_rel_linux_tsan_builder = { | |
| 579 'name': 'Chromium Linux TSan Builder', | |
| 580 'factory': annotator_factory.AnnotatorFactory().BaseFactory('chromium', | |
| 581 triggers=['linux_tsan']), | |
| 582 'category': '10TSan v2|compile', | |
| 583 'auto_reboot': True, | |
| 584 } | |
| 585 | |
| 586 b_chromium_rel_linux_tsan = { | |
| 587 'name': 'Linux TSan Tests', | |
| 588 'factory': annotator_factory.AnnotatorFactory().BaseFactory('chromium'), | |
| 589 'category': '10TSan v2', | |
| 590 'auto_reboot': True, | |
| 591 } | |
| 592 | |
| 593 b_chromium_rel_linux_msan_builder = { | |
| 594 'name': 'Chromium Linux MSan Builder', | |
| 595 'factory': annotator_factory.AnnotatorFactory().BaseFactory('chromium', | |
| 596 triggers=['linux_msan']), | |
| 597 'category': '11Linux MSan|compile', | |
| 598 'auto_reboot': True, | |
| 599 } | |
| 600 | |
| 601 b_chromium_rel_linux_msan = { | |
| 602 'name': 'Linux MSan Tests', | |
| 603 'factory': annotator_factory.AnnotatorFactory().BaseFactory('chromium'), | |
| 604 'category': '11Linux MSan', | |
| 605 'auto_reboot': True, | |
| 606 } | |
| 607 | |
| 608 b_chromium_rel_linux_chromeos_msan_builder = { | |
| 609 'name': 'Chromium Linux ChromeOS MSan Builder', | |
| 610 'factory': annotator_factory.AnnotatorFactory().BaseFactory('chromium', | |
| 611 triggers=['linux_chromeos_msan']), | |
| 612 'category': '12ChromeOS MSan|compile', | |
| 613 'auto_reboot': True, | |
| 614 } | |
| 615 | |
| 616 b_chromium_rel_linux_chromeos_msan = { | |
| 617 'name': 'Linux ChromeOS MSan Tests', | |
| 618 'factory': annotator_factory.AnnotatorFactory().BaseFactory('chromium'), | |
| 619 'category': '12ChromeOS MSan', | |
| 620 'auto_reboot': True, | |
| 621 } | |
| 622 | |
| 623 | |
| 624 # DrMemory test bots | |
| 625 b_win_drmemory = [ | |
| 626 b_chromium_rel_win_drmemory_builder, | |
| 627 b_chromium_rel_win_drmemory, | |
| 628 b_chromium_rel_win_drmemory_content, | |
| 629 b_chromium_rel_win_drmemory_full_1, | |
| 630 b_chromium_rel_win_drmemory_full_2, | |
| 631 b_chromium_rel_win_drmemory_full_3, | |
| 632 b_chromium_rel_win_drmemory_full_4, | |
| 633 b_chromium_rel_win_drmemory_full_5, | |
| 634 b_chromium_rel_win_drmemory_64_builder, | |
| 635 b_chromium_rel_win_drmemory_64, | |
| 636 ] | |
| 637 | |
| 638 # We shard content_browsertests within each bot to reduce timeout consequences. | |
| 639 DRMEMORY_CONTENT_SHARDS_PER_BOT = 10 | |
| 640 def windows_content_browser_drmemory_full_tester(shard, total): | |
| 641 if shard < 1 or shard > total: | |
| 642 raise | |
| 643 ret = {'category': '7DrMemory Full|drmemory_tester'} | |
| 644 ret['name'] = 'Windows Content Browser (DrMemory full) (%d)' % shard | |
| 645 ret['builddir'] = 'windows-content-browser-drm-full-%d' % shard | |
| 646 ret['auto_reboot'] = True | |
| 647 testlist = [] | |
| 648 for i in range(DRMEMORY_CONTENT_SHARDS_PER_BOT): | |
| 649 testlist.append( | |
| 650 'drmemory_full_content_browsertests_%d_of_%d' % | |
| 651 ((shard-1)*DRMEMORY_CONTENT_SHARDS_PER_BOT+i+1, | |
| 652 total*DRMEMORY_CONTENT_SHARDS_PER_BOT)) | |
| 653 ret['factory'] = F_WIN_NINJA( | |
| 654 slave_type='Tester', | |
| 655 target='Release', | |
| 656 build_url=chromium_win_drmemory_archive, | |
| 657 tests=testlist, | |
| 658 options=['content_browsertests'], | |
| 659 factory_properties={ 'halt_on_missing_build': True}) | |
| 660 return ret | |
| 661 | |
| 662 # Windows Content Browser (DrMemory full) | |
| 663 for i in range(WINDOWS_CONTENT_BROWSER_DRMEMORY_FULL_TESTERS): | |
| 664 b_win_drmemory.append( | |
| 665 windows_content_browser_drmemory_full_tester( | |
| 666 i + 1, WINDOWS_CONTENT_BROWSER_DRMEMORY_FULL_TESTERS)) | |
| 667 | |
| 668 DRMEMORY_BROWSER_SHARDS_PER_BOT = 4 | |
| 669 def windows_browser_drmemory_full_tester(shard, total): | |
| 670 if shard < 1 or shard > total: | |
| 671 raise | |
| 672 ret = {'category': '8DrMemory Full (Browser Tests)|drmemory_tester'} | |
| 673 ret['name'] = 'Windows Browser (DrMemory full) (%d)' % shard | |
| 674 ret['builddir'] = 'windows-browser-drm-full-%d' % shard | |
| 675 testlist = [] | |
| 676 for i in range(DRMEMORY_BROWSER_SHARDS_PER_BOT): | |
| 677 testlist.append( | |
| 678 'drmemory_full_browser_tests_%d_of_%d' % | |
| 679 ((shard-1)*DRMEMORY_BROWSER_SHARDS_PER_BOT+i+1, | |
| 680 total*DRMEMORY_BROWSER_SHARDS_PER_BOT)) | |
| 681 ret['factory'] = F_WIN_NINJA( | |
| 682 target='Release', | |
| 683 slave_type='Tester', | |
| 684 build_url=chromium_win_drmemory_archive, | |
| 685 tests=testlist, | |
| 686 options=['browser_tests'], | |
| 687 factory_properties={ 'halt_on_missing_build': True}) | |
| 688 return ret | |
| 689 | |
| 690 # Windows Browser (DrMemory full) | |
| 691 for i in range(WINDOWS_BROWSER_DRMEMORY_FULL_TESTERS): | |
| 692 b_win_drmemory.append( | |
| 693 windows_browser_drmemory_full_tester( | |
| 694 i + 1, WINDOWS_BROWSER_DRMEMORY_FULL_TESTERS)) | |
| 695 | |
| 696 c['builders'] = b_win_drmemory | |
| 697 | |
| 698 c['builders'].extend([ | |
| 699 b_chromium_rel_linux_tsan_builder, | |
| 700 b_chromium_rel_linux_tsan, | |
| 701 b_chromium_rel_linux_msan_builder, | |
| 702 b_chromium_rel_linux_msan, | |
| 703 b_chromium_rel_linux_chromeos_msan_builder, | |
| 704 b_chromium_rel_linux_chromeos_msan, | |
| 705 ]) | |
| 706 | |
| 707 # Associate the slaves to the manual builders. The configuration is in | |
| 708 # slaves.cfg. | |
| 709 slaves = slaves_list.SlavesList('slaves.cfg', 'ChromiumMemoryFull') | |
| 710 for builder in c['builders']: | |
| 711 builder['slavenames'] = slaves.GetSlavesName(builder=builder['name']) | |
| 712 | |
| 713 ####### BUILDSLAVES | |
| 714 | |
| 715 # The 'slaves' list defines the set of allowable buildslaves. List all the | |
| 716 # slaves registered to a builder. Remove dupes. | |
| 717 c['slaves'] = master_utils.AutoSetupSlaves(c['builders'], | |
| 718 config.Master.GetBotPassword()) | |
| 719 | |
| 720 # Make sure everything works together. | |
| 721 master_utils.VerifySetup(c, slaves) | |
| 722 | |
| 723 ####### STATUS TARGETS | |
| 724 | |
| 725 # Buildbot master url: | |
| 726 # Must come before AutoSetupMaster(). | |
| 727 c['buildbotURL'] = ActiveMaster.buildbot_url | |
| 728 | |
| 729 # Adds common status and tools to this master. | |
| 730 master_utils.AutoSetupMaster(c, ActiveMaster, | |
| 731 public_html='../master.chromium/public_html', | |
| 732 templates=['../master.chromium/templates'], | |
| 733 tagComparator=master_poller.comparator, | |
| 734 enable_http_status_push=ActiveMaster.is_production_host) | |
| 735 | |
| 736 if ActiveMaster.is_production_host: | |
| 737 import notifier_cfg | |
| 738 notifier_cfg.Update(config, ActiveMaster, c) | |
| OLD | NEW |