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