<commit_before># -*- python -*-
# ex: set syntax=python:

# Copyright (c) 2011 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.

# See master.experimental/slaves.cfg for documentation.


INTEGER_WIDTH = 3
DEFAULT_CONCURRENT_BUILDSLAVES = range(4)
DEFAULT_COMPILE_BUILDSLAVES = range(10)
MAC_10_6_COMPILE_BUILDSLAVES = range(6)
WIN7_COMPILE_BUILDSLAVES = (0, 4)
WIN8_COMPILE_BUILDSLAVES = range(2)
ANDROID_KEEPALIVE_CONDITION = ['python',
    'buildbot/slave/skia_slave_scripts/android_verify_device.py', '--serial',
    '%(serial)s']
DEFAULT_ANDROID_SDK_ROOT = '/home/chrome-bot/android-sdk-linux'
DEFAULT_NACL_SDK_ROOT = '/home/chrome-bot/nacl_sdk/pepper_25'
LINUX_COMPILE_BUILDERS = [
  'Build-Ubuntu12-GCC-x86-Debug',
  'Build-Ubuntu12-GCC-x86-Release',
  'Build-Ubuntu12-GCC-x86_64-Debug',
  'Build-Ubuntu12-GCC-x86_64-Release',
  'Build-Ubuntu12-GCC-x86_64-Debug-NoGPU',
  'Build-Ubuntu12-GCC-x86_64-Release-NoGPU',
  'Build-Ubuntu12-GCC-NaCl-Debug',
  'Build-Ubuntu12-GCC-NaCl-Release',
  'Build-Ubuntu12-GCC-Arm7-Debug-NexusS',
  'Build-Ubuntu12-GCC-Arm7-Release-NexusS',
  'Build-Ubuntu12-GCC-Arm7-Debug-Xoom',
  'Build-Ubuntu12-GCC-Arm7-Release-Xoom',
  'Build-Ubuntu12-GCC-Arm7-Debug-GalaxyNexus',
  'Build-Ubuntu12-GCC-Arm7-Release-GalaxyNexus',
  'Build-Ubuntu12-GCC-Arm7-Debug-Nexus4',
  'Build-Ubuntu12-GCC-Arm7-Release-Nexus4',
  'Build-Ubuntu12-GCC-Arm7-Debug-Nexus7',
  'Build-Ubuntu12-GCC-Arm7-Release-Nexus7',
  'Build-Ubuntu12-GCC-Arm7-Debug-Nexus10',
  'Build-Ubuntu12-GCC-Arm7-Release-Nexus10',
  'Build-Ubuntu12-GCC-x86-Debug-IntelRhb',
  'Build-Ubuntu12-GCC-x86-Release-IntelRhb',
  'Build-Ubuntu12-GCC-x86-Debug-Alex',
  'Build-Ubuntu12-GCC-x86-Release-Alex',
  'Build-Ubuntu12-GCC-x86_64-Release-Valgrind',
  'Build-Ubuntu12-GCC-x86_64-Debug-Link',
  'Build-Ubuntu12-GCC-x86_64-Release-Link',
  'Build-Ubuntu12-GCC-Arm7-Debug-Daisy',
  'Build-Ubuntu12-GCC-Arm7-Release-Daisy',
  'Build-Ubuntu12-Clang-x86_64-Debug',
]


def _Format(obj, dictionary):
  """ Recursively apply the dictionary to any format strings in the requested
  object. Returns a copy and does not modify the original. """
  if isinstance(obj, str):
    return obj % dictionary
  if isinstance(obj, list):
    return [_Format(item, dictionary) for item in obj]
  if isinstance(obj, dict):
    rv = {}
    for key, value in obj.iteritems():
      rv[_Format(key, dictionary)] = _Format(value, dictionary)
    return rv
  return obj


def SelfReferenceFormat(dictionary):
  """ Apply a format string to a dictionary in order to allow self-referencial
  keys and values. For example:

  >>> d = {
  >>>   'key1': 'value',
  >>>   'key2': '%(key1)s2',
  >>> }
  >>> print SelfReferenceFormat(d)['key2']
  value2

  Note that chains of references are not supported:

  >>> d = {
  >>>   'key1': 'value',
  >>>   'key2': '%(key1)s2',
  >>>   'key3': '%(key2)s_fail',
  >>> }
  >>> print SelfReferenceFormat(d)['key3']
  %(key1)s2_fail
  """
  return _Format(dictionary, dictionary)


def AddTrybots(slave_dict):
  slave_dict['builder'].extend(
      [builder + '-Trybot' for builder in slave_dict['builder']])


slaves = [SelfReferenceFormat(d) for d in [
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexuss-001',
    'builder': [
        'Test-Android-NexusS-SGX540-Arm7-Debug',
        'Test-Android-NexusS-SGX540-Arm7-Release',
        'Perf-Android-NexusS-SGX540-Arm7-Release',
        ],
    'serial': '3835BCDAEF6F00EC',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexuss-002',
    'builder': [
        'Test-Android-NexusS-SGX540-Arm7-Debug',
        'Test-Android-NexusS-SGX540-Arm7-Release',
        'Perf-Android-NexusS-SGX540-Arm7-Release',
        ],
    'serial': '3935B4F8CA4B00EC',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-xoom-001',
    'builder': [
        'Test-Android-Xoom-Tegra2-Arm7-Debug',
        'Test-Android-Xoom-Tegra2-Arm7-Release',
        'Perf-Android-Xoom-Tegra2-Arm7-Release',
        ],
    'serial': '1700618542c101d7',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-xoom-003',
    'builder': [
        'Test-Android-Xoom-Tegra2-Arm7-Debug',
        'Test-Android-Xoom-Tegra2-Arm7-Release',
        'Perf-Android-Xoom-Tegra2-Arm7-Release',
        ],
    'serial': '1700618443a00497',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-galaxynexus-001',
    'builder': [
        'Test-Android-GalaxyNexus-SGX540-Arm7-Debug',
        'Test-Android-GalaxyNexus-SGX540-Arm7-Release',
        'Perf-Android-GalaxyNexus-SGX540-Arm7-Release',
        ],
    'serial': '0149A97C1601B015',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus4-001',
    'builder': [
        'Test-Android-Nexus4-Adreno320-Arm7-Debug',
        'Test-Android-Nexus4-Adreno320-Arm7-Release',
        'Perf-Android-Nexus4-Adreno320-Arm7-Release',
        ],
    'serial': '0012746f51cea6b9',
    'num_cores': '4',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus7-001',
    'builder': [
        'Test-Android-Nexus7-Tegra3-Arm7-Debug',
        'Test-Android-Nexus7-Tegra3-Arm7-Release',
        'Perf-Android-Nexus7-Tegra3-Arm7-Release',
        ],
    'serial': '015d210a13480604',
    'num_cores': '4',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus7-002',
    'builder': [
        'Test-Android-Nexus7-Tegra3-Arm7-Debug',
        'Test-Android-Nexus7-Tegra3-Arm7-Release',
        'Perf-Android-Nexus7-Tegra3-Arm7-Release',
        ],
    'serial': '015d18848c280217',
    'num_cores': '4',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus7-003',
    'builder': [
        'Test-Android-Nexus7-Tegra3-Arm7-Debug',
        'Test-Android-Nexus7-Tegra3-Arm7-Release',
        'Perf-Android-Nexus7-Tegra3-Arm7-Release',
        ],
    'serial': '015d16897c401e17',
    'num_cores': '4',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus10-001',
    'builder': [
        'Test-Android-Nexus10-MaliT604-Arm7-Debug',
        'Test-Android-Nexus10-MaliT604-Arm7-Release',
        'Perf-Android-Nexus10-MaliT604-Arm7-Release',
        ],
    'serial': 'R32C801B5LH',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus10-003',
    'builder': [
        'Test-Android-Nexus10-MaliT604-Arm7-Debug',
        'Test-Android-Nexus10-MaliT604-Arm7-Release',
        'Perf-Android-Nexus10-MaliT604-Arm7-Release',
        ],
    'serial': 'R32CB017X2L',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-intel-rhb-001',
    'builder': [
        'Test-Android-IntelRhb-SGX544-x86-Debug',
        'Test-Android-IntelRhb-SGX544-x86-Release',
        'Perf-Android-IntelRhb-SGX544-x86-Release',
        ],
    'serial': 'RHBEB243501353',
    'num_cores': '1',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-001',
    'builder': [
        'Test-Ubuntu12-ShuttleA-NoGPU-x86_64-Debug',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-002',
    'builder': [
        'Test-ChromeOS-Alex-GMA3150-x86-Debug',
        'Test-ChromeOS-Alex-GMA3150-x86-Release',
        'Perf-ChromeOS-Alex-GMA3150-x86-Release',
        ],
    'ssh_host': '192.168.1.140',
    'ssh_port': '22',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-003',
    'builder': [
        'Test-ChromeOS-Link-HD4000-x86_64-Debug',
        'Test-ChromeOS-Link-HD4000-x86_64-Release',
        'Perf-ChromeOS-Link-HD4000-x86_64-Release',
        ],
    'ssh_host': '192.168.1.123',
    'ssh_port': '22',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-004',
    'builder': [
        'Test-ChromeOS-Daisy-MaliT604-Arm7-Debug',
        'Test-ChromeOS-Daisy-MaliT604-Arm7-Release',
        'Perf-ChromeOS-Daisy-MaliT604-Arm7-Release',

        ],
    'ssh_host': '192.168.1.134',
    'ssh_port': '22',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-005',
    'builder': [
        'Canary-Chrome-Ubuntu12-Ninja-x86_64-Default',
        'Canary-Chrome-Ubuntu12-Ninja-x86_64-DRT',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-006',
    'builder': [
        'Canary-Moz2D-Ubuntu12-GCC-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu13-000',
    'builder': [
        'Build-Ubuntu13-Clang-x86_64-Debug-ASAN',
        'Build-Ubuntu13-Clang-x86_64-Debug-TSAN',
        'Build-Ubuntu13-GCC4.8-x86_64-Debug',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu13-001',
    'builder': [
        'Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-ASAN',
        'Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-TSAN',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-ati5770-001',
    'builder': [
        'Test-Ubuntu12-ShuttleA-ATI5770-x86-Debug',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86-Release',
        'Perf-Ubuntu12-ShuttleA-ATI5770-x86-Release',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Debug',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Debug-ZeroGPUCache',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release',
        'Perf-Ubuntu12-ShuttleA-ATI5770-x86_64-Release',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release-Valgrind',
        ],
    'num_cores': '8',
  },
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_6-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Test-Mac10.6-MacMini4.1-GeForce320M-x86-Debug',
        'Test-Mac10.6-MacMini4.1-GeForce320M-x86-Release',
        'Test-Mac10.6-MacMini4.1-GeForce320M-x86_64-Debug',
        'Test-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release',
        ],
    'num_cores': '4',
  } for i in DEFAULT_CONCURRENT_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_7-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Test-Mac10.7-MacMini4.1-GeForce320M-x86-Debug',
        'Test-Mac10.7-MacMini4.1-GeForce320M-x86-Release',
        'Test-Mac10.7-MacMini4.1-GeForce320M-x86_64-Debug',
        'Test-Mac10.7-MacMini4.1-GeForce320M-x86_64-Release',
        ],
    'num_cores': '4',
  } for i in DEFAULT_CONCURRENT_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_8-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Test-Mac10.8-MacMini4.1-GeForce320M-x86-Debug',
        'Test-Mac10.8-MacMini4.1-GeForce320M-x86-Release',
        'Test-Mac10.8-MacMini4.1-GeForce320M-x86_64-Debug',
        'Test-Mac10.8-MacMini4.1-GeForce320M-x86_64-Release',
        ],
    'num_cores': '4',
  } for i in DEFAULT_CONCURRENT_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win7-intel-000',
    'builder': [
        'Test-Win7-ShuttleA-HD2000-x86-Debug',
        'Test-Win7-ShuttleA-HD2000-x86-Release',
        'Test-Win7-ShuttleA-HD2000-x86_64-Debug',
        'Test-Win7-ShuttleA-HD2000-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win7-intel-special-000',
    'builder': [
        'Test-Win7-ShuttleA-HD2000-x86-Debug-ANGLE',
        'Test-Win7-ShuttleA-HD2000-x86-Release-ANGLE',
        'Test-Win7-ShuttleA-HD2000-x86-Debug-DirectWrite',
        'Test-Win7-ShuttleA-HD2000-x86-Release-DirectWrite',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win7-intel-special-001',
    'builder': [
        'Canary-Chrome-Win7-Ninja-x86-SharedLib',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win8-gtx660-000',
    'builder': [
        'Test-Win8-ShuttleA-GTX660-x86-Debug',
        'Test-Win8-ShuttleA-GTX660-x86-Release',
        'Test-Win8-ShuttleA-GTX660-x86_64-Debug',
        'Test-Win8-ShuttleA-GTX660-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win8-gtx660-bench',
    'builder': [
        'Perf-Win8-ShuttleA-GTX660-x86-Release',
        'Perf-Win8-ShuttleA-GTX660-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win8-hd7770-000',
    'builder': [
        'Test-Win8-ShuttleA-HD7770-x86-Debug',
        'Test-Win8-ShuttleA-HD7770-x86-Release',
        'Test-Win8-ShuttleA-HD7770-x86_64-Debug',
        'Test-Win8-ShuttleA-HD7770-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win8-hd7770-bench',
    'builder': [
        'Perf-Win8-ShuttleA-HD7770-x86-Release',
        'Perf-Win8-ShuttleA-HD7770-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_6-bench',
    'builder': [
        'Perf-Mac10.6-MacMini4.1-GeForce320M-x86-Release',
        'Perf-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_7-bench',
    'builder': [
        'Perf-Mac10.7-MacMini4.1-GeForce320M-x86-Release',
        'Perf-Mac10.7-MacMini4.1-GeForce320M-x86_64-Release',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_8-bench',
    'builder': [
        'Perf-Mac10.8-MacMini4.1-GeForce320M-x86-Release',
        'Perf-Mac10.8-MacMini4.1-GeForce320M-x86_64-Release',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win7-intel-bench',
    'builder': [
        'Perf-Win7-ShuttleA-HD2000-x86-Release',
        'Perf-Win7-ShuttleA-HD2000-x86_64-Release',
        'Perf-Win7-ShuttleA-HD2000-x86-Release-ANGLE',
        'Perf-Win7-ShuttleA-HD2000-x86-Release-DirectWrite',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skia-housekeeping-slave-a',
    'builder': [
        'Housekeeper-PerCommit',
        'Housekeeper-Nightly',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skia-housekeeping-slave-b',
    'builder': [
        'Housekeeper-PerCommit',
        'Housekeeper-Nightly',
        ],
  },
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-linux-compile-vm-a-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': LINUX_COMPILE_BUILDERS,
    'num_cores': '2',
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
    'nacl_sdk_root': DEFAULT_NACL_SDK_ROOT,
  } for i in DEFAULT_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-linux-compile-vm-b-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': LINUX_COMPILE_BUILDERS,
    'num_cores': '2',
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
    'nacl_sdk_root': DEFAULT_NACL_SDK_ROOT,
  } for i in DEFAULT_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-mac-10_6-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Mac10.6-GCC-x86-Debug',
        'Build-Mac10.6-GCC-x86-Release',
        'Build-Mac10.6-GCC-x86_64-Debug',
        'Build-Mac10.6-GCC-x86_64-Release',
        ],
    'num_cores': '8',
  } for i in MAC_10_6_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-mac-10_7-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Mac10.7-Clang-x86-Debug',
        'Build-Mac10.7-Clang-x86-Release',
        'Build-Mac10.7-Clang-x86_64-Debug',
        'Build-Mac10.7-Clang-x86_64-Release',
        'Build-Mac10.7-Clang-Arm7-Debug-iOS',
        'Build-Mac10.7-Clang-Arm7-Release-iOS',
        ],
    'num_cores': '8',
  } for i in DEFAULT_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-mac-10_8-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Mac10.8-Clang-x86-Debug',
        'Build-Mac10.8-Clang-x86-Release',
        'Build-Mac10.8-Clang-x86_64-Debug',
        'Build-Mac10.8-Clang-x86_64-Release',
        ],
    'num_cores': '8',
  } for i in DEFAULT_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-win-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Win7-VS2010-x86-Debug',
        'Build-Win7-VS2010-x86-Release',
        'Build-Win7-VS2010-x86_64-Debug',
        'Build-Win7-VS2010-x86_64-Release',
        'Build-Win7-VS2010-x86-Debug-ANGLE',
        'Build-Win7-VS2010-x86-Release-ANGLE',
        'Build-Win7-VS2010-x86-Debug-DirectWrite',
        'Build-Win7-VS2010-x86-Release-DirectWrite',
        'Build-Win7-VS2010-x86-Debug-Exceptions',
        ],
    'num_cores': '8',
  } for i in WIN7_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-win8-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Win8-VS2012-x86-Debug',
        'Build-Win8-VS2012-x86-Release',
        'Build-Win8-VS2012-x86_64-Debug',
        'Build-Win8-VS2012-x86_64-Release',
        ],
    'num_cores': '8',
  } for i in WIN8_COMPILE_BUILDSLAVES
] + [
################################################################################
############################ Private Buildslaves ###############################
################################################################################

  {
    'master': 'PrivateSkia',
    'hostname': 'skia-private-slave-001',
    'builder': [
        'Build-Ubuntu12-GCC-Arm7-Debug-NvidiaLogan',
        'Build-Ubuntu12-GCC-Arm7-Release-NvidiaLogan',
    ],
  },
  {
    'master': 'PrivateSkia',
    'hostname': 'skiabot-shuttle-ubuntu12-logan-001',
    'builder': [
        'Test-Android-Logan-Nvidia-Arm7-Debug',
        'Test-Android-Logan-Nvidia-Arm7-Release',
        'Perf-Android-Logan-Nvidia-Arm7-Release',
    ],
    'serial': '17420A1802000000012010180',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
]]


for slave_dict in slaves:
  AddTrybots(slave_dict)<commit_msg>Update Logan serial #<commit_after># -*- python -*-
# ex: set syntax=python:

# Copyright (c) 2011 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.

# See master.experimental/slaves.cfg for documentation.


INTEGER_WIDTH = 3
DEFAULT_CONCURRENT_BUILDSLAVES = range(4)
DEFAULT_COMPILE_BUILDSLAVES = range(10)
MAC_10_6_COMPILE_BUILDSLAVES = range(6)
WIN7_COMPILE_BUILDSLAVES = (0, 4)
WIN8_COMPILE_BUILDSLAVES = range(2)
ANDROID_KEEPALIVE_CONDITION = ['python',
    'buildbot/slave/skia_slave_scripts/android_verify_device.py', '--serial',
    '%(serial)s']
DEFAULT_ANDROID_SDK_ROOT = '/home/chrome-bot/android-sdk-linux'
DEFAULT_NACL_SDK_ROOT = '/home/chrome-bot/nacl_sdk/pepper_25'
LINUX_COMPILE_BUILDERS = [
  'Build-Ubuntu12-GCC-x86-Debug',
  'Build-Ubuntu12-GCC-x86-Release',
  'Build-Ubuntu12-GCC-x86_64-Debug',
  'Build-Ubuntu12-GCC-x86_64-Release',
  'Build-Ubuntu12-GCC-x86_64-Debug-NoGPU',
  'Build-Ubuntu12-GCC-x86_64-Release-NoGPU',
  'Build-Ubuntu12-GCC-NaCl-Debug',
  'Build-Ubuntu12-GCC-NaCl-Release',
  'Build-Ubuntu12-GCC-Arm7-Debug-NexusS',
  'Build-Ubuntu12-GCC-Arm7-Release-NexusS',
  'Build-Ubuntu12-GCC-Arm7-Debug-Xoom',
  'Build-Ubuntu12-GCC-Arm7-Release-Xoom',
  'Build-Ubuntu12-GCC-Arm7-Debug-GalaxyNexus',
  'Build-Ubuntu12-GCC-Arm7-Release-GalaxyNexus',
  'Build-Ubuntu12-GCC-Arm7-Debug-Nexus4',
  'Build-Ubuntu12-GCC-Arm7-Release-Nexus4',
  'Build-Ubuntu12-GCC-Arm7-Debug-Nexus7',
  'Build-Ubuntu12-GCC-Arm7-Release-Nexus7',
  'Build-Ubuntu12-GCC-Arm7-Debug-Nexus10',
  'Build-Ubuntu12-GCC-Arm7-Release-Nexus10',
  'Build-Ubuntu12-GCC-x86-Debug-IntelRhb',
  'Build-Ubuntu12-GCC-x86-Release-IntelRhb',
  'Build-Ubuntu12-GCC-x86-Debug-Alex',
  'Build-Ubuntu12-GCC-x86-Release-Alex',
  'Build-Ubuntu12-GCC-x86_64-Release-Valgrind',
  'Build-Ubuntu12-GCC-x86_64-Debug-Link',
  'Build-Ubuntu12-GCC-x86_64-Release-Link',
  'Build-Ubuntu12-GCC-Arm7-Debug-Daisy',
  'Build-Ubuntu12-GCC-Arm7-Release-Daisy',
  'Build-Ubuntu12-Clang-x86_64-Debug',
]


def _Format(obj, dictionary):
  """ Recursively apply the dictionary to any format strings in the requested
  object. Returns a copy and does not modify the original. """
  if isinstance(obj, str):
    return obj % dictionary
  if isinstance(obj, list):
    return [_Format(item, dictionary) for item in obj]
  if isinstance(obj, dict):
    rv = {}
    for key, value in obj.iteritems():
      rv[_Format(key, dictionary)] = _Format(value, dictionary)
    return rv
  return obj


def SelfReferenceFormat(dictionary):
  """ Apply a format string to a dictionary in order to allow self-referencial
  keys and values. For example:

  >>> d = {
  >>>   'key1': 'value',
  >>>   'key2': '%(key1)s2',
  >>> }
  >>> print SelfReferenceFormat(d)['key2']
  value2

  Note that chains of references are not supported:

  >>> d = {
  >>>   'key1': 'value',
  >>>   'key2': '%(key1)s2',
  >>>   'key3': '%(key2)s_fail',
  >>> }
  >>> print SelfReferenceFormat(d)['key3']
  %(key1)s2_fail
  """
  return _Format(dictionary, dictionary)


def AddTrybots(slave_dict):
  slave_dict['builder'].extend(
      [builder + '-Trybot' for builder in slave_dict['builder']])


slaves = [SelfReferenceFormat(d) for d in [
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexuss-001',
    'builder': [
        'Test-Android-NexusS-SGX540-Arm7-Debug',
        'Test-Android-NexusS-SGX540-Arm7-Release',
        'Perf-Android-NexusS-SGX540-Arm7-Release',
        ],
    'serial': '3835BCDAEF6F00EC',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexuss-002',
    'builder': [
        'Test-Android-NexusS-SGX540-Arm7-Debug',
        'Test-Android-NexusS-SGX540-Arm7-Release',
        'Perf-Android-NexusS-SGX540-Arm7-Release',
        ],
    'serial': '3935B4F8CA4B00EC',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-xoom-001',
    'builder': [
        'Test-Android-Xoom-Tegra2-Arm7-Debug',
        'Test-Android-Xoom-Tegra2-Arm7-Release',
        'Perf-Android-Xoom-Tegra2-Arm7-Release',
        ],
    'serial': '1700618542c101d7',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-xoom-003',
    'builder': [
        'Test-Android-Xoom-Tegra2-Arm7-Debug',
        'Test-Android-Xoom-Tegra2-Arm7-Release',
        'Perf-Android-Xoom-Tegra2-Arm7-Release',
        ],
    'serial': '1700618443a00497',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-galaxynexus-001',
    'builder': [
        'Test-Android-GalaxyNexus-SGX540-Arm7-Debug',
        'Test-Android-GalaxyNexus-SGX540-Arm7-Release',
        'Perf-Android-GalaxyNexus-SGX540-Arm7-Release',
        ],
    'serial': '0149A97C1601B015',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus4-001',
    'builder': [
        'Test-Android-Nexus4-Adreno320-Arm7-Debug',
        'Test-Android-Nexus4-Adreno320-Arm7-Release',
        'Perf-Android-Nexus4-Adreno320-Arm7-Release',
        ],
    'serial': '0012746f51cea6b9',
    'num_cores': '4',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus7-001',
    'builder': [
        'Test-Android-Nexus7-Tegra3-Arm7-Debug',
        'Test-Android-Nexus7-Tegra3-Arm7-Release',
        'Perf-Android-Nexus7-Tegra3-Arm7-Release',
        ],
    'serial': '015d210a13480604',
    'num_cores': '4',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus7-002',
    'builder': [
        'Test-Android-Nexus7-Tegra3-Arm7-Debug',
        'Test-Android-Nexus7-Tegra3-Arm7-Release',
        'Perf-Android-Nexus7-Tegra3-Arm7-Release',
        ],
    'serial': '015d18848c280217',
    'num_cores': '4',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus7-003',
    'builder': [
        'Test-Android-Nexus7-Tegra3-Arm7-Debug',
        'Test-Android-Nexus7-Tegra3-Arm7-Release',
        'Perf-Android-Nexus7-Tegra3-Arm7-Release',
        ],
    'serial': '015d16897c401e17',
    'num_cores': '4',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus10-001',
    'builder': [
        'Test-Android-Nexus10-MaliT604-Arm7-Debug',
        'Test-Android-Nexus10-MaliT604-Arm7-Release',
        'Perf-Android-Nexus10-MaliT604-Arm7-Release',
        ],
    'serial': 'R32C801B5LH',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-nexus10-003',
    'builder': [
        'Test-Android-Nexus10-MaliT604-Arm7-Debug',
        'Test-Android-Nexus10-MaliT604-Arm7-Release',
        'Perf-Android-Nexus10-MaliT604-Arm7-Release',
        ],
    'serial': 'R32CB017X2L',
    'num_cores': '2',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-intel-rhb-001',
    'builder': [
        'Test-Android-IntelRhb-SGX544-x86-Debug',
        'Test-Android-IntelRhb-SGX544-x86-Release',
        'Perf-Android-IntelRhb-SGX544-x86-Release',
        ],
    'serial': 'RHBEB243501353',
    'num_cores': '1',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-001',
    'builder': [
        'Test-Ubuntu12-ShuttleA-NoGPU-x86_64-Debug',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-002',
    'builder': [
        'Test-ChromeOS-Alex-GMA3150-x86-Debug',
        'Test-ChromeOS-Alex-GMA3150-x86-Release',
        'Perf-ChromeOS-Alex-GMA3150-x86-Release',
        ],
    'ssh_host': '192.168.1.140',
    'ssh_port': '22',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-003',
    'builder': [
        'Test-ChromeOS-Link-HD4000-x86_64-Debug',
        'Test-ChromeOS-Link-HD4000-x86_64-Release',
        'Perf-ChromeOS-Link-HD4000-x86_64-Release',
        ],
    'ssh_host': '192.168.1.123',
    'ssh_port': '22',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-004',
    'builder': [
        'Test-ChromeOS-Daisy-MaliT604-Arm7-Debug',
        'Test-ChromeOS-Daisy-MaliT604-Arm7-Release',
        'Perf-ChromeOS-Daisy-MaliT604-Arm7-Release',

        ],
    'ssh_host': '192.168.1.134',
    'ssh_port': '22',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-005',
    'builder': [
        'Canary-Chrome-Ubuntu12-Ninja-x86_64-Default',
        'Canary-Chrome-Ubuntu12-Ninja-x86_64-DRT',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-006',
    'builder': [
        'Canary-Moz2D-Ubuntu12-GCC-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu13-000',
    'builder': [
        'Build-Ubuntu13-Clang-x86_64-Debug-ASAN',
        'Build-Ubuntu13-Clang-x86_64-Debug-TSAN',
        'Build-Ubuntu13-GCC4.8-x86_64-Debug',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu13-001',
    'builder': [
        'Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-ASAN',
        'Test-Ubuntu13-ShuttleA-HD2000-x86_64-Debug-TSAN',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-ubuntu12-ati5770-001',
    'builder': [
        'Test-Ubuntu12-ShuttleA-ATI5770-x86-Debug',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86-Release',
        'Perf-Ubuntu12-ShuttleA-ATI5770-x86-Release',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Debug',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Debug-ZeroGPUCache',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release',
        'Perf-Ubuntu12-ShuttleA-ATI5770-x86_64-Release',
        'Test-Ubuntu12-ShuttleA-ATI5770-x86_64-Release-Valgrind',
        ],
    'num_cores': '8',
  },
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_6-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Test-Mac10.6-MacMini4.1-GeForce320M-x86-Debug',
        'Test-Mac10.6-MacMini4.1-GeForce320M-x86-Release',
        'Test-Mac10.6-MacMini4.1-GeForce320M-x86_64-Debug',
        'Test-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release',
        ],
    'num_cores': '4',
  } for i in DEFAULT_CONCURRENT_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_7-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Test-Mac10.7-MacMini4.1-GeForce320M-x86-Debug',
        'Test-Mac10.7-MacMini4.1-GeForce320M-x86-Release',
        'Test-Mac10.7-MacMini4.1-GeForce320M-x86_64-Debug',
        'Test-Mac10.7-MacMini4.1-GeForce320M-x86_64-Release',
        ],
    'num_cores': '4',
  } for i in DEFAULT_CONCURRENT_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_8-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Test-Mac10.8-MacMini4.1-GeForce320M-x86-Debug',
        'Test-Mac10.8-MacMini4.1-GeForce320M-x86-Release',
        'Test-Mac10.8-MacMini4.1-GeForce320M-x86_64-Debug',
        'Test-Mac10.8-MacMini4.1-GeForce320M-x86_64-Release',
        ],
    'num_cores': '4',
  } for i in DEFAULT_CONCURRENT_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win7-intel-000',
    'builder': [
        'Test-Win7-ShuttleA-HD2000-x86-Debug',
        'Test-Win7-ShuttleA-HD2000-x86-Release',
        'Test-Win7-ShuttleA-HD2000-x86_64-Debug',
        'Test-Win7-ShuttleA-HD2000-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win7-intel-special-000',
    'builder': [
        'Test-Win7-ShuttleA-HD2000-x86-Debug-ANGLE',
        'Test-Win7-ShuttleA-HD2000-x86-Release-ANGLE',
        'Test-Win7-ShuttleA-HD2000-x86-Debug-DirectWrite',
        'Test-Win7-ShuttleA-HD2000-x86-Release-DirectWrite',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win7-intel-special-001',
    'builder': [
        'Canary-Chrome-Win7-Ninja-x86-SharedLib',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win8-gtx660-000',
    'builder': [
        'Test-Win8-ShuttleA-GTX660-x86-Debug',
        'Test-Win8-ShuttleA-GTX660-x86-Release',
        'Test-Win8-ShuttleA-GTX660-x86_64-Debug',
        'Test-Win8-ShuttleA-GTX660-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win8-gtx660-bench',
    'builder': [
        'Perf-Win8-ShuttleA-GTX660-x86-Release',
        'Perf-Win8-ShuttleA-GTX660-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win8-hd7770-000',
    'builder': [
        'Test-Win8-ShuttleA-HD7770-x86-Debug',
        'Test-Win8-ShuttleA-HD7770-x86-Release',
        'Test-Win8-ShuttleA-HD7770-x86_64-Debug',
        'Test-Win8-ShuttleA-HD7770-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win8-hd7770-bench',
    'builder': [
        'Perf-Win8-ShuttleA-HD7770-x86-Release',
        'Perf-Win8-ShuttleA-HD7770-x86_64-Release',
        ],
    'num_cores': '8',
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_6-bench',
    'builder': [
        'Perf-Mac10.6-MacMini4.1-GeForce320M-x86-Release',
        'Perf-Mac10.6-MacMini4.1-GeForce320M-x86_64-Release',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_7-bench',
    'builder': [
        'Perf-Mac10.7-MacMini4.1-GeForce320M-x86-Release',
        'Perf-Mac10.7-MacMini4.1-GeForce320M-x86_64-Release',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-macmini-10_8-bench',
    'builder': [
        'Perf-Mac10.8-MacMini4.1-GeForce320M-x86-Release',
        'Perf-Mac10.8-MacMini4.1-GeForce320M-x86_64-Release',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skiabot-shuttle-win7-intel-bench',
    'builder': [
        'Perf-Win7-ShuttleA-HD2000-x86-Release',
        'Perf-Win7-ShuttleA-HD2000-x86_64-Release',
        'Perf-Win7-ShuttleA-HD2000-x86-Release-ANGLE',
        'Perf-Win7-ShuttleA-HD2000-x86-Release-DirectWrite',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skia-housekeeping-slave-a',
    'builder': [
        'Housekeeper-PerCommit',
        'Housekeeper-Nightly',
        ],
  },
  {
    'master': 'Skia',
    'hostname': 'skia-housekeeping-slave-b',
    'builder': [
        'Housekeeper-PerCommit',
        'Housekeeper-Nightly',
        ],
  },
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-linux-compile-vm-a-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': LINUX_COMPILE_BUILDERS,
    'num_cores': '2',
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
    'nacl_sdk_root': DEFAULT_NACL_SDK_ROOT,
  } for i in DEFAULT_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-linux-compile-vm-b-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': LINUX_COMPILE_BUILDERS,
    'num_cores': '2',
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
    'nacl_sdk_root': DEFAULT_NACL_SDK_ROOT,
  } for i in DEFAULT_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-mac-10_6-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Mac10.6-GCC-x86-Debug',
        'Build-Mac10.6-GCC-x86-Release',
        'Build-Mac10.6-GCC-x86_64-Debug',
        'Build-Mac10.6-GCC-x86_64-Release',
        ],
    'num_cores': '8',
  } for i in MAC_10_6_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-mac-10_7-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Mac10.7-Clang-x86-Debug',
        'Build-Mac10.7-Clang-x86-Release',
        'Build-Mac10.7-Clang-x86_64-Debug',
        'Build-Mac10.7-Clang-x86_64-Release',
        'Build-Mac10.7-Clang-Arm7-Debug-iOS',
        'Build-Mac10.7-Clang-Arm7-Release-iOS',
        ],
    'num_cores': '8',
  } for i in DEFAULT_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-mac-10_8-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Mac10.8-Clang-x86-Debug',
        'Build-Mac10.8-Clang-x86-Release',
        'Build-Mac10.8-Clang-x86_64-Debug',
        'Build-Mac10.8-Clang-x86_64-Release',
        ],
    'num_cores': '8',
  } for i in DEFAULT_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-win-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Win7-VS2010-x86-Debug',
        'Build-Win7-VS2010-x86-Release',
        'Build-Win7-VS2010-x86_64-Debug',
        'Build-Win7-VS2010-x86_64-Release',
        'Build-Win7-VS2010-x86-Debug-ANGLE',
        'Build-Win7-VS2010-x86-Release-ANGLE',
        'Build-Win7-VS2010-x86-Debug-DirectWrite',
        'Build-Win7-VS2010-x86-Release-DirectWrite',
        'Build-Win7-VS2010-x86-Debug-Exceptions',
        ],
    'num_cores': '8',
  } for i in WIN7_COMPILE_BUILDSLAVES
] + [
  {
    'master': 'Skia',
    'hostname': 'skiabot-win8-compile-%s' % ('%d' % i).zfill(INTEGER_WIDTH),
    'builder': [
        'Build-Win8-VS2012-x86-Debug',
        'Build-Win8-VS2012-x86-Release',
        'Build-Win8-VS2012-x86_64-Debug',
        'Build-Win8-VS2012-x86_64-Release',
        ],
    'num_cores': '8',
  } for i in WIN8_COMPILE_BUILDSLAVES
] + [
################################################################################
############################ Private Buildslaves ###############################
################################################################################

  {
    'master': 'PrivateSkia',
    'hostname': 'skia-private-slave-001',
    'builder': [
        'Build-Ubuntu12-GCC-Arm7-Debug-NvidiaLogan',
        'Build-Ubuntu12-GCC-Arm7-Release-NvidiaLogan',
    ],
  },
  {
    'master': 'PrivateSkia',
    'hostname': 'skiabot-shuttle-ubuntu12-logan-001',
    'builder': [
        'Test-Android-Logan-Nvidia-Arm7-Debug',
        'Test-Android-Logan-Nvidia-Arm7-Release',
        'Perf-Android-Logan-Nvidia-Arm7-Release',
    ],
    'serial': '17420A1802400000009FE8140',
    'keepalive_conditions': [ANDROID_KEEPALIVE_CONDITION],
    'android_sdk_root': DEFAULT_ANDROID_SDK_ROOT,
  },
]]


for slave_dict in slaves:
  AddTrybots(slave_dict)
{'fraction_non_alphanumeric': 0.1855234878722751, 'fraction_numerical': 0.07588783133763177, 'mean_word_length': 2.965604707792208, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 69, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 6, 'substrings_counts': 2, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5958141', 'n_tokens_mistral': 18081, 'n_tokens_neox': 16063, 'n_words': 1636}