# Each stanza here describes a particular test suite or sub-suite.  These are
# processed through the transformations described in kind.yml to produce a
# bunch of tasks.  See the schema in `test-descriptions.py` for a description
# of the fields used here.

# Note that these are in lexical order

cppunit:
    description: "CPP Unit Tests"
    suite: cppunittest
    treeherder-symbol: tc(Cpp)
    e10s: false
    run-on-projects:
        by-test-platform:
            windows.*: ['mozilla-central', 'try']
            default: ['all']
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --cppunittest-suite=cppunittest

crashtest:
    description: "Crashtest run"
    suite: reftest/crashtest
    treeherder-symbol: tc-R(C)
    docker-image: {"in-tree": "desktop1604-test"}
    e10s:
        by-test-platform:
            # Bug 1304435
            win.*: false
            default: both
    mozharness:
        script: desktop_unittest.py
        chunked: true
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --reftest-suite=crashtest

external-media-tests:
    description: "External Media Test run"
    suite: external-media-tests
    treeherder-symbol: tc-VP(b-m)
    e10s: false
    tier: 2
    max-run-time: 5400
    run-on-projects:
        by-test-platform:
            windows.*: ['mozilla-central', 'try']
            default: ['all']
    mozharness:
        script: firefox_media_tests_taskcluster.py
        config:
            by-test-platform:
                win.*:
                    - mediatests/taskcluster_windows_config.py
                default:
                    - mediatests/taskcluster_posix_config.py
                    - remove_executables.py

firefox-ui-functional-local:
    description: "Firefox-ui-tests functional run"
    suite: "firefox-ui/functional local"
    treeherder-symbol: tc-Fxfn-l(en-US)
    max-run-time: 5400
    tier: 1
    docker-image: {"in-tree": "desktop1604-test"}
    mozharness:
        script: firefox_ui_tests/functional.py
        config:
            - firefox_ui_tests/taskcluster.py
            - remove_executables.py
        extra-options:
            - "--tag"
            - "local"

firefox-ui-functional-remote:
    description: "Firefox-ui-tests functional run"
    suite: "firefox-ui/functional remote"
    treeherder-symbol: tc-Fxfn-r(en-US)
    max-run-time: 5400
    tier: 2
    docker-image: {"in-tree": "desktop1604-test"}
    mozharness:
        script: firefox_ui_tests/functional.py
        config:
            - firefox_ui_tests/taskcluster.py
            - remove_executables.py
        extra-options:
            - "--tag"
            - "remote"

gtest:
    description: "GTests run"
    suite: gtest
    treeherder-symbol: tc(GTest)
    e10s: false
    instance-size: xlarge
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --gtest-suite=gtest

jittest:
    description: "JIT Test run"
    suite: jittest/jittest-chunked
    treeherder-symbol: tc(Jit)
    e10s: false
    chunks:
        by-test-platform:
            win.*: 1
            default: 6
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --jittest-suite=jittest-chunked

jsreftest:
    description: "JS Reftest run"
    suite: reftest/jsreftest
    treeherder-symbol: tc-R(J)
    chunks:
        by-test-platform:
            win.*: 1
            default: 2
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --reftest-suite=jsreftest

marionette:
    description: "Marionette unittest run"
    suite: marionette
    treeherder-symbol: tc(Mn)
    max-run-time: 5400
    docker-image: {"in-tree": "desktop1604-test"}
    mozharness:
        script: marionette.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - marionette/windows_taskcluster_config.py
                default:
                    - marionette/prod_config.py
                    - remove_executables.py

mochitest:
    description: "Mochitest plain run"
    suite: mochitest/plain-chunked
    treeherder-symbol: tc-M()
    loopback-video: true
    run-on-projects:
        by-test-platform:
            linux64-ccov/opt: []
            default: ['all']
    chunks:
        by-test-platform:
            macosx.*: 5
            win.*: 5
            default: 10
    e10s:
        by-test-platform:
            linux64-ccov/opt: false
            default: both
    max-run-time: 5400
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        chunked: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            by-test-platform:
                linux64-ccov/opt:
                    - --mochitest-suite=plain-chunked
                    - --code-coverage
                default:
                    - --mochitest-suite=plain-chunked
    # Bug 1281241: migrating to m3.large instances
    instance-size: legacy
    allow-software-gl-layers: false

mochitest-a11y:
    description: "Mochitest a11y run"
    suite: mochitest/a11y
    treeherder-symbol: tc-M(a11y)
    loopback-video: true
    e10s: false
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        chunked: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --mochitest-suite=a11y

mochitest-browser-chrome:
    description: "Mochitest browser-chrome run"
    suite:
        by-test-platform:
            linux64-jsdcov/opt: mochitest/browser-chrome-coverage
            default: mochitest/browser-chrome-chunked
    treeherder-symbol: tc-M(bc)
    loopback-video: true
    run-on-projects:
        by-test-platform:
            linux64-jsdcov/opt: []
            linux64-ccov/opt: []
            default: ['all']
    chunks:
        by-test-platform:
            linux64-jsdcov/opt: 35
            default: 10
    e10s:
        by-test-platform:
            linux64-jsdcov/opt: false
            linux64-ccov/opt: false
            default: both
    max-run-time:
        by-test-platform:
            linux64-jsdcov/opt: 7200
            linux64-ccov/opt: 7200
            linux64/debug: 5400
            default: 3600
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            by-test-platform:
                linux64-jsdcov/opt:
                    - --mochitest-suite=browser-chrome-coverage
                linux64-ccov/opt:
                    - --mochitest-suite=browser-chrome-chunked
                    - --code-coverage
                default:
                    - --mochitest-suite=browser-chrome-chunked
    # Bug 1281241: migrating to m3.large instances
    instance-size:
        by-test-platform:
            linux64-jsdcov/opt: xlarge
            linux64-ccov/opt: xlarge
            default: legacy
    allow-software-gl-layers: false

mochitest-chrome:
    description: "Mochitest chrome run"
    suite: mochitest/chrome
    treeherder-symbol: tc-M(c)
    loopback-video: true
    chunks:
      by-test-platform:
        macosx.*: 1
        default: 3
    e10s: false
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --mochitest-suite=chrome

mochitest-clipboard:
    description: "Mochitest clipboard run"
    suite: mochitest/plain-clipboard,chrome-clipboard,browser-chrome-clipboard,jetpack-package-clipboard
    treeherder-symbol: tc-M(cl)
    loopback-video: true
    instance-size: xlarge
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        chunked: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --mochitest-suite=plain-clipboard,chrome-clipboard,browser-chrome-clipboard,jetpack-package-clipboard

mochitest-devtools-chrome:
    description: "Mochitest devtools-chrome run"
    suite:
        by-test-platform:
            linux64-jsdcov/opt: mochitest/mochitest-devtools-chrome-coverage
            default: mochitest/mochitest-devtools-chrome-chunked
    treeherder-symbol: tc-M(dt)
    loopback-video: true
    max-run-time: 5400
    chunks:
        by-test-platform:
            win.*: 8
            default: 10
    run-on-projects:
        by-test-platform:
            linux64-ccov/opt: []
            linux64-jsdcov/opt: []
            windows.*: ['mozilla-central', 'try']
            default: ['all']
    e10s:
        by-test-platform:
            # Bug 1242986: linux64/debug mochitest-devtools-chrome e10s is not greened up yet
            linux64/debug: false
            linux64-ccov/opt: false
            linux64-jsdcov/opt: false
            default: both
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            by-test-platform:
                linux64-ccov/opt:
                    - --mochitest-suite=mochitest-devtools-chrome-chunked
                    - --code-coverage
                linux64-jsdcov:
                    - --mochitest-suite=mochitest-devtools-chrome-coverage
                default:
                    - --mochitest-suite=mochitest-devtools-chrome-chunked
    instance-size:
        by-test-platform:
            # Bug 1281241: migrating to m3.large instances
            linux64-asan/opt: legacy
            default: default
    # Bug 1296086: high number of intermittents observed with software GL and large instances
    allow-software-gl-layers: false

mochitest-gpu:
    description: "Mochitest GPU run"
    suite: mochitest/plain-gpu,chrome-gpu,browser-chrome-gpu
    treeherder-symbol: tc-M(gpu)
    loopback-video: true
    e10s:
        by-test-platform:
            win.*: both
            default: true
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        chunked: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --mochitest-suite=plain-gpu,chrome-gpu,browser-chrome-gpu

mochitest-jetpack:
    description: "Mochitest jetpack run"
    suite: mochitest/jetpack-package
    treeherder-symbol: tc-M(JP)
    loopback-video: true
    e10s: false
    max-run-time: 5400
    run-on-projects:
        by-test-platform:
            windows.*: ['mozilla-central', 'try']
            default: ['all']
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        chunked: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --mochitest-suite=jetpack-package
            - --mochitest-suite=jetpack-addon

mochitest-media:
    description: "Mochitest media run"
    suite: mochitest/mochitest-media
    treeherder-symbol: tc-M(mda)
    max-run-time: 5400
    loopback-video: true
    instance-size: large
    docker-image: {"in-tree": "desktop1604-test"}
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        chunked: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --mochitest-suite=mochitest-media

mochitest-other:
    description: "Mochitest other"
    suite: mochitest/other
    treeherder-symbol: tc-M(oth)
    e10s: false
    max-run-time: 5400
    mozharness:
        script: mozharness/scripts/desktop_unittest.py
        no-read-buildbot-config: true
        include-blob-upload-branch: true
        chunked: true
        config:
          by-test-platform:
            macosx.*:
              - remove_executables.py
              - unittests/mac_unittest.py
            default:
              - unittests/linux_unittest.py
              - remove_executables.py
        extra-options:
            - --mochitest-suite=chrome,a11y

mochitest-webgl:
    description: "Mochitest webgl run"
    suite: mochitest/mochitest-gl
    treeherder-symbol: tc-M(gl)
    chunks: 3
    loopback-video: true
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        chunked: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --mochitest-suite=mochitest-gl
    # Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety
    allow-software-gl-layers: false

reftest:
    description: "Reftest run"
    suite: reftest/reftest
    treeherder-symbol: tc-R(R)
    docker-image: {"in-tree": "desktop1604-test"}
    chunks:
      by-test-platform:
        macosx.*: 1
        default: 8
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --reftest-suite=reftest

reftest-no-accel:
    description: "Reftest not accelerated run"
    suite: reftest/reftest-no-accel
    treeherder-symbol: tc-R(Ru)
    docker-image: {"in-tree": "desktop1604-test"}
    chunks:
      by-test-platform:
        macosx.*: 1
        default: 8
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            - --reftest-suite=reftest-no-accel

web-platform-tests:
    description: "Web platform test run"
    suite: web-platform-tests
    treeherder-symbol: tc-W()
    chunks:
      by-test-platform:
        macosx.*: 5
        default: 12
    max-run-time: 7200
    instance-size: xlarge
    docker-image: {"in-tree": "desktop1604-test"}
    checkout: true
    run-on-projects:
        by-test-platform:
            windows.*: ['mozilla-central', 'try']
            default: ['all']
    mozharness:
        script: web_platform_tests.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - web_platform_tests/prod_config_windows_taskcluster.py
                default:
                    - web_platform_tests/prod_config.py
                    - remove_executables.py
        extra-options:
            - --test-type=testharness

web-platform-tests-reftests:
    description: "Web platform reftest run"
    suite: web-platform-tests-reftests
    treeherder-symbol: tc-W(Wr)
    max-run-time: 5400
    instance-size: xlarge
    docker-image: {"in-tree": "desktop1604-test"}
    checkout: true
    run-on-projects:
        by-test-platform:
            windows.*: ['mozilla-central', 'try']
            default: ['all']
    mozharness:
        script: web_platform_tests.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - web_platform_tests/prod_config_windows_taskcluster.py
                default:
                    - web_platform_tests/prod_config.py
                    - remove_executables.py
        extra-options:
            - --test-type=reftest

web-platform-tests-wdspec:
    description: "Web platform webdriver-spec run"
    suite: web-platform-tests-wdspec
    treeherder-symbol: tc-W(Wd)
    max-run-time: 5400
    instance-size: xlarge
    docker-image: {"in-tree": "desktop1604-test"}
    checkout: true
    mozharness:
        script: web_platform_tests.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - web_platform_tests/prod_config_windows_taskcluster.py
                default:
                    - web_platform_tests/prod_config.py
                    - remove_executables.py
        extra-options:
            - --test-type=wdspec

xpcshell:
    description: "xpcshell test run"
    suite: xpcshell
    treeherder-symbol: tc-X()
    run-on-projects:
        by-test-platform:
            linux64-ccov/opt: []
            default: ['all']
    chunks:
        by-test-platform:
            # win.*: 1
            macosx.*: 1
            linux64/debug: 10
            default: 8
    max-run-time: 5400
    e10s: false
    mozharness:
        script: desktop_unittest.py
        no-read-buildbot-config: true
        config:
            by-test-platform:
                win.*:
                    - unittests/win_taskcluster_unittest.py
                macosx.*:
                    - remove_executables.py
                    - unittests/mac_unittest.py
                default:
                    - unittests/linux_unittest.py
                    - remove_executables.py
        extra-options:
            by-test-platform:
                linux64-ccov/opt:
                    - --xpcshell-suite=xpcshell
                    - --code-coverage
                default:
                    - --xpcshell-suite=xpcshell
    # Bug 1281241: migrating to m3.large instances
    instance-size: legacy
    allow-software-gl-layers: false