# This file maps build platforms to test platforms.  In some cases, a
# single build may be tested on multiple test platforms, but a single test
# platform can only link to one build platform.  Both build and test platforms
# are represented as <platform>/<type>, where <type> is what Treeherder calls a
# collection.
#
# Each test platform further specifies the set of tests that will be scheduled
# for the platform, referring to tests defined in test-sets.yml.
#
# Note that set does not depend on the tree; tree-dependent job selection
# should be performed in the target task selection phase of task-graph
# generation.


##
# Linux platforms (matching /linux.*/)

linux32/debug:
    build-platform: linux/debug
    test-sets:
        - linux32-tests
linux32/opt:
    build-platform: linux/opt
    test-sets:
        - linux32-tests
        - linux32-opt-tests
linux32-nightly/opt:
    build-platform: linux-nightly/opt
    test-sets:
        - linux32-tests
        - linux32-opt-tests
linux32-devedition/opt:
    build-platform: linux-devedition-nightly/opt
    test-sets:
        - linux32-tests
        - linux32-opt-tests

linux64/debug:
    build-platform: linux64/debug
    test-sets:
        - common-tests
        - web-platform-tests
        - reftest-stylo
        - mochitest-headless
linux64/opt:
    build-platform: linux64/opt
    test-sets:
        - common-tests
        - web-platform-tests
        - opt-only-tests
        - reftest-stylo
        - desktop-screenshot-capture
        - talos
        - linux-talos-stylo-disabled
        - awsy
        - mochitest-headless
linux64-nightly/opt:
    build-platform: linux64-nightly/opt
    test-sets:
        - common-tests
        - web-platform-tests
        - opt-only-tests
        - desktop-screenshot-capture
        - awsy
linux64-devedition/opt:
    build-platform: linux64-devedition-nightly/opt
    test-sets:
        - common-tests
        - web-platform-tests
        - opt-only-tests
        - desktop-screenshot-capture

# TODO: use 'pgo' and 'asan' labels here, instead of -pgo/opt
linux64-pgo/opt:
    build-platform: linux64-pgo/opt
    test-sets:
        - common-tests
        - web-platform-tests
        - talos
        - linux-talos-stylo-disabled

linux64-asan/opt:
    build-platform: linux64-asan/opt
    test-sets:
        - common-tests

# Stylo disabled mode only runs a subset of tests.
linux32-stylo-disabled/debug:
    build-platform: linux/debug
    test-sets:
        - stylo-disabled-tests
linux32-stylo-disabled/opt:
    build-platform: linux/opt
    test-sets:
        - awsy-stylo-disabled
        - stylo-disabled-tests
linux64-stylo-disabled/debug:
    build-platform: linux64/debug
    test-sets:
        - stylo-disabled-tests
        - devtools-tests
linux64-stylo-disabled/opt:
    build-platform: linux64/opt
    test-sets:
        - awsy-stylo-disabled
        - stylo-disabled-tests
        - devtools-tests

# Stylo sequential runs check memory and performance when using a single thread.
linux64-stylo-sequential/opt:
    build-platform: linux64/opt
    test-sets:
        - awsy-stylo-sequential

# QR builds just run a subset right now. Note that the tests in this
# test set are further restricted in {reftests,talos,...}.yml to run on
# certain projects only, to avoid adding too much infra load.
linux64-qr/opt:
    build-platform: linux64/opt
    test-sets:
        - linux-qr-tests
        - linux-qr-talos
linux64-qr/debug:
    build-platform: linux64/debug
    test-sets:
        - linux-qr-tests

linux64-ccov/opt:
    build-platform: linux64-ccov/opt
    test-sets:
        - common-tests
        - web-platform-tests
        - awsy
        - talos
linux64-jsdcov/opt:
    build-platform: linux64-jsdcov/opt
    test-sets:
        - jsdcov-code-coverage-tests

##
# Windows platforms (matching /windows.*/)

# win32
windows7-32/debug:
    build-platform: win32/debug
    test-sets:
        - windows-reftest-gpu
        - windows-tests

windows7-32/opt:
    build-platform: win32/opt
    test-sets:
        - awsy
        - desktop-screenshot-capture
        - windows-reftest-gpu
        - windows-talos
        - windows-tests

windows7-32-pgo/opt:
    build-platform: win32-pgo/opt
    test-sets:
        - awsy
        - desktop-screenshot-capture
        - windows-reftest-gpu
        - windows-talos
        - windows-tests

windows7-32-nightly/opt:
    build-platform: win32-nightly/opt
    test-sets:
        - awsy
        - desktop-screenshot-capture
        - windows-reftest-gpu
        - windows-tests

windows7-32-devedition/opt:
    build-platform: win32-devedition-nightly/opt
    test-sets:
        - desktop-screenshot-capture
        - windows-reftest-gpu
        - windows-tests

# win64
windows10-64-ccov/debug:
    build-platform: win64-ccov/debug
    test-sets:
        - awsy
        - desktop-screenshot-capture
        - windows-reftest-gpu
        - windows-talos
        - windows-tests

windows10-64/debug:
    build-platform: win64/debug
    test-sets:
        - windows-tests
        - mochitest-headless

windows10-64/opt:
    build-platform: win64/opt
    test-sets:
        - awsy
        - desktop-screenshot-capture
        - windows-talos
        - windows-tests
        - mochitest-headless

windows10-64-pgo/opt:
    build-platform: win64-pgo/opt
    test-sets:
        - awsy
        - desktop-screenshot-capture
        - windows-talos
        - windows-tests

windows10-64-nightly/opt:
    build-platform: win64-nightly/opt
    test-sets:
        - awsy
        - desktop-screenshot-capture
        - desktop-instrumentation
        - windows-tests

windows10-64-devedition/opt:
    build-platform: win64-devedition-nightly/opt
    test-sets:
        - desktop-screenshot-capture
        - windows-tests

windows10-64-asan/opt:
    build-platform: win64-asan/opt
    test-sets:
        - common-tests

# QR builds just run a subset right now. Note that the tests in this
# test set are further restricted in {reftests,talos,...}.yml to run on
# certain projects only, to avoid adding too much infra load.
windows10-64-qr/debug:
    build-platform: win64/debug
    test-sets:
        - windows-qr-tests

windows10-64-qr/opt:
    build-platform: win64/opt
    test-sets:
        - windows-qr-tests


##
# MacOS X platforms (matching /macosx.*/)

macosx64/debug:
    build-platform: macosx64/debug
    test-sets:
        - macosx64-tests

macosx64/opt:
    build-platform: macosx64/opt
    test-sets:
        - macosx64-talos
        - macosx64-tests
        - desktop-screenshot-capture
        - awsy

macosx64-nightly/opt:
    build-platform: macosx64-nightly/opt
    test-sets:
        - macosx64-tests
        - macosx64-talos-profiling
        - awsy

macosx64-devedition/opt:
    build-platform: macosx64-devedition-nightly/opt
    test-sets:
        - macosx64-tests

##
# Android platforms (matching /android.*/)

android-4.3-arm7-api-16/debug:
    build-platform: android-api-16/debug
    test-sets:
        - android-common-tests
        - android-debug-tests
        - android-gradle-tests

android-4.3-arm7-api-16/opt:
    build-platform: android-api-16/opt
    test-sets:
        - android-common-tests
        - android-opt-tests
        - android-gradle-tests

android-4.2-x86/opt:
    build-platform: android-x86/opt
    test-sets:
        - android-x86-tests

# android-4.3-arm7-api-16-gradle/opt actually uses the non-gradle build
# which is tier 2, and requires only a smoketest, like robocop
android-4.3-arm7-api-16-gradle/opt:
    build-platform: android-api-16-gradle/opt
    test-sets:
        - android-opt-tests
