# Copyright 2018 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.

# This is a .pyl, or "Python Literal", file. You can treat it just like a
# .json file, with the following exceptions:
# * all keys must be quoted (use single quotes, please);
# * comments are allowed, using '#' syntax; and
# * trailing commas are allowed.
#
# The mixins known to exist. These can be applied to a waterfall, builder, or
# test. The mixins are copied verbatim for each test in a config, overwriting
# existing values. These values can be overriden by exceptions.
#
# 'swarming' mixins are copied verbatim into the test, with one exception; the
# swarming 'dimensions' key. All values in the 'dimensions' key are applied to
# every 'dimension_set' in a test, creating one if no 'dimension_set' already
# exists.
#
# TODO: Potentially switch structure. It's possible we want swarming dimensions
# to live in their own 'swarming' top level key in this file. The file would
# then look something like:
#
# {
#   'swarming': {
#     'x86-64': {
#       'cpu': 'x86-64',
#     },
#   },
#   'coverage_data': {
#     'isolate_coverage_data': True,
#   },
# }
#
# This could make things more clear for users, but would require moving mixins
# into sections. Re-evaluate if there are more uses of this potential feature.
#
# Examples:
#
# == Regular ==
# Mixin:
#   'mac-rel-args': {
#     'args': [
#       'mac-release/sizes',
#     ],
#   },
#
# Waterfall:
#   {
#     'name': 'chromium'
#     'machines': {
#       'mac-rel': {
#         'test_suites': {
#           'scripts': 'public_build_scripts',
#         },
#         'mixins': ['mac-rel-args'],
#       },
#     },
#   },
#
# Output:
#   {
#     'name': 'chromium'
#     'machines': {
#       'mac-rel': {
#         "scripts": [
#           {
#             "args": [
#               "mac-release/sizes"
#             ],
#             "name": "sizes",
#             "script": "sizes.py"
#           }
#         ]
#       },
#     },
#   },
#
# == Swarming ==
# Mixin:
#   'x86-64': {
#     'swarming': {
#       'dimensions': {
#         'cpu': 'x86-64',
#       },
#     },
#   },
#
# Waterfall:
#   {
#     'name': 'chromium'
#     'machines': {
#       'msan-bot': {
#         'test_suites': {
#           'scripts': 'linux_chromeos_gtests',
#         },
#         'mixins': ['x86-64'],
#       },
#     },
#   },
#
# Output:
#   {
#     'name': 'chromium'
#     'machines': {
#       'msan-bot': {
#         "gtest_tests": [
#           {
#             "args": [
#               "--test-launcher-print-test-stdio=always"
#             ],
#             "swarming": {
#               "can_use_on_swarming_builders": true,
#               "dimension_sets": [
#                 {
#                   "cpu": "x86-64",
#                   "os": "Ubuntu-14.04"
#                 }
#               ]
#             },
#             "test": "accessibility_unittests"
#           },
#           <snip>
#       },
#     },
#   },

{
  'amd_8870m': {
    'swarming': {
      'dimensions': {
        'gpu': '1002:6821',
      },
    },
  },
  'angler': {
    # Nexus 6P
    'swarming': {
      'dimensions': {
        'device_type': 'angler',
        'os': 'Android',
      },
    },
  },
  'arm_tester': {
    'swarming': {
      'dimensions': {
        'cpu': 'armv7l-32',
      },
    },
  },
  'bullhead': {
    'swarming': {
      'dimensions': {
        'device_type': 'bullhead',
        'os': 'Android',
      },
    },
  },
  'code-coverage': {
    'isolate_coverage_data': True,
  },
  'flounder': {
    # Nexus 9
    'swarming': {
      'dimensions': {
        'device_type': 'flounder',
        'os': 'Android',
      },
    },
  },
  'foster': {
    # NVIDIA SHIELD TV
    'swarming': {
      'dimensions': {
        'device_type': 'foster',
        'os': 'Android',
      },
    },
  },
  'gpu_pool': {
    'swarming': {
      'dimensions': {
        'pool': 'Chrome-GPU',
      },
    },
  },
  'hammerhead': {
    # Nexus 5
    'swarming': {
      'dimensions': {
        'device_type': 'hammerhead',
        'os': 'Android',
      },
    },
  },
  'intel_iris_5100': {
    'swarming': {
      'dimensions': {
        'gpu': '8086:0a2e',
      },
    },
  },
  'kitkat': {
    'swarming': {
      'dimensions': {
        'device_os': 'K',
      },
    },
  },
  'limited_capacity_bot': {
    # Some FYI bot configurations have a limited number of bots in the swarming
    # pool. Increase the default expiration time from 1 hour to 6 hours to
    # prevent shards from timing out.
    'swarming': {
      'expiration': 21600,
    },
  },
  'linux-rel-args': {
    'args': [
      'linux-release-64/sizes',
    ],
  },
  'linux-trusty': {
    'swarming': {
      'dimensions': {
        'os': 'Ubuntu-14.04',
      },
    },
  },
  'linux_amd_r7_240': {
    'swarming': {
      'dimensions': {
        'gpu': '1002:6613',
        'os': 'Ubuntu',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'linux_intel_hd_530': {
    'swarming': {
      'dimensions': {
        'gpu': '8086:1912',
        'os': 'Ubuntu',
        'pool': 'Chrome-GPU',
      }
    }
  },
  'linux_intel_hd_630': {
    'swarming': {
      'dimensions': {
        'gpu': '8086:5912-17.1.4',
        'os': 'Ubuntu',
        'pool': 'Chrome-GPU',
      }
    }
  },
  'linux_intel_hd_630_experimental': {
    # Similar to stable, but with a newer Mesa version.
    'swarming': {
      'dimensions': {
        'gpu': '8086:5912-18.0.5',
        'os': 'Ubuntu',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'linux_nvidia_quadro_p400': {
    'swarming': {
      'dimensions': {
        'gpu': '10de:1cb3-384.90',
        'os': 'Ubuntu',
        'pool': 'Chrome-GPU',
      }
    }
  },
  'linux_nvidia_quadro_p400_experimental': {
    'swarming': {
      'dimensions': {
        'gpu': '10de:1cb3-410.78',
        'os': 'Ubuntu',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'lollipop': {
    'swarming': {
      'dimensions': {
        'device_os': 'L',
      },
    },
  },
  'mac-rel-args': {
    'args': [
      'mac-release/sizes',
    ],
  },
  'mac_10.10': {
    'swarming': {
      'dimensions': {
        'os': 'Mac-10.10',
      },
    },
  },
  'mac_10.11': {
    'swarming': {
      'dimensions': {
        'os': 'Mac-10.11',
      },
    },
  },
  'mac_10.13': {
    'swarming': {
      'dimensions': {
        'os': 'Mac-10.13',
      },
    },
  },
  'mac_10.14': {
    'swarming': {
      'dimensions': {
        'os': 'Mac-10.14',
      },
    },
  },
  'mac_mini_10.12': {
    'swarming': {
      'dimensions': {
        'gpu': '8086:0a2e',
        'os': 'Mac-10.12.6',
      },
    },
  },
  'mac_mini_intel_gpu': {
    'swarming': {
      'dimensions': {
        'gpu': '8086:0a2e',
        'os': 'Mac-10.12.6',
      },
    },
  },
  'mac_mini_intel_gpu_experimental': {
    'swarming': {
      'dimensions': {
        'gpu': '8086:0a2e',
        'os': 'Mac-10.13.6',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'mac_pro_amd_gpu': {
    'swarming': {
      'dimensions': {
        'gpu': '1002:679e',
        'os': 'Mac-10.12',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'mac_retina_amd_gpu': {
    'swarming': {
      'dimensions': {
        'gpu': '1002:6821',
        'hidpi': '1',
        'os': 'Mac-10.13.6',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'mac_retina_amd_gpu_experimental': {
    # Currently same configuration as stable version above.
    'swarming': {
      'dimensions': {
        'gpu': '1002:6821',
        'hidpi': '1',
        'os': 'Mac-10.13.6',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'mac_retina_nvidia_gpu': {
    'swarming': {
      'dimensions': {
        'gpu': '10de:0fe9',
        'hidpi': '1',
        'os': 'Mac-10.13.6',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'mac_retina_nvidia_gpu_experimental': {
    # Currently the same as the stable version.
    'swarming': {
      'dimensions': {
        'gpu': '10de:0fe9',
        'hidpi': '1',
        'os': 'Mac-10.13.6',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'marlin': {
    # Pixel XL
    'swarming': {
      'dimensions': {
        'device_type': 'marlin',
        'os': 'Android',
      },
    },
  },
  'marshmallow': {
    'swarming': {
      'dimensions': {
        'device_os': 'MMB29Q',
      },
    },
  },
  'marshmallow_generic': {
    'swarming': {
      'dimensions': {
        'device_os': 'M',
      },
    },
  },
  'no_gpu': {
    'swarming': {
      'dimensions': {
        'gpu': 'none',
      },
    },
  },
  'nougat': {
    'swarming': {
      'dimensions': {
        'device_os': 'N',
      },
    },
  },
  'nvidia_750m_mac_edition': {
    'swarming': {
      'dimensions': {
        'gpu': '10de:0fe9',
      },
    },
  },
  'optional_mac_gpu_slicing': {
    'swarming': {
      'optional_dimensions': {
        # Wait 10 minutes for 10.13 and then fall back to the specified
        # dimensions (usually 10.12).  The format for optional dimensions
        # is: expiration: [{key, value}, ..].
        600: [
          {
            'os': 'Mac-10.13.6',
          }
        ],
      },
    }
  },
  'oreo': {
    'swarming': {
      'dimensions': {
        'device_os': 'O',
      },
    },
  },
  'pie': {
    'swarming': {
      'dimensions': {
        'device_os': 'P',
      },
    },
  },
  'shamu': {
    # Nexus 6
    'swarming': {
      'dimensions': {
        'device_type': 'shamu',
        'os': 'Android',
      },
    },
  },
  'walleye': {
    # Pixel 2
    'swarming': {
      'dimensions': {
        'device_type': 'walleye',
        'os': 'Android',
      },
    },
  },
  'win10': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-10-15063',
      },
    },
  },
  'win10_intel_hd_630_experimental': {
    # Currently same as stable version.
    'swarming': {
      'dimensions': {
        'gpu': '8086:5912-24.20.100.6286',
        'os': 'Windows-10',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'win10_intel_hd_630_stable': {
    'swarming': {
      'dimensions': {
        'gpu': '8086:5912-24.20.100.6286',
        'os': 'Windows-10',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'win10_nvidia_quadro_p400_experimental': {
    'swarming': {
      'dimensions': {
        'gpu': '10de:1cb3-24.21.14.1195',
        'os': 'Windows-10',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'win10_nvidia_quadro_p400_stable': {
    'swarming': {
      'dimensions': {
        'gpu': '10de:1cb3-24.21.14.1195',
        'os': 'Windows-10',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'win7': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-7-SP1',
      },
    },
  },
  'win7_amd_r7_240': {
    'swarming': {
      'dimensions': {
        'gpu': '1002:6613',
        'os': 'Windows-2008ServerR2-SP1',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'win7_nvidia_quadro_p400': {
    'swarming': {
      'dimensions': {
        'gpu': '10de:1cb3-24.21.14.1195',
        'os': 'Windows-2008ServerR2-SP1',
        'pool': 'Chrome-GPU',
      },
    },
  },
  'win8': {
    'swarming': {
      'dimensions': {
        'os': 'Windows-8.1-SP0',
      },
    },
  },
  'x86-32': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-32',
      },
    },
  },
  'x86-64': {
    'swarming': {
      'dimensions': {
        'cpu': 'x86-64',
      },
    },
  },
}
