| 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.ChromiumMemoryFYI |
| 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-fyi', 'drm-cr') |
| 138 |
| 139 chromium_win_drmemory_64_archive = master_config.GetGSUtilUrl( |
| 140 'chromium-memory-fyi', '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', 'ChromiumMemoryFYI') |
| 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 |