job-defaults:
    platform: linux64/opt
    always-target: true
    worker-type:
        by-platform:
            linux64.*: aws-provisioner-v1/gecko-t-linux-xlarge
    worker:
        by-platform:
            linux64.*:
                docker-image: {in-tree: "lint"}
                max-run-time: 3600
    treeherder:
        kind: test
        tier: 2
    run:
        using: mach
    when:
        files-changed:
            - 'config/mozunit.py'
            - 'python/mach_commands.py'

taskgraph-tests:
    description: taskcluster/taskgraph unit tests
    treeherder:
        symbol: py(tg)
    run:
        mach: python-test --subsuite taskgraph
    when:
        files-changed:
            - 'taskcluster/**/*.py'
            - 'python/mach/**/*.py'

marionette-harness:
    description: testing/marionette/harness unit tests
    treeherder:
        symbol: py(mnh)
    run:
        mach: python-test --subsuite marionette-harness
    when:
        files-changed:
            - 'testing/marionette/harness/**'
            - 'testing/mozbase/mozlog/mozlog/**'
            - 'testing/mozbase/mozlog/setup.py'
            - 'testing/mozbase/packages.txt'

mochitest-harness:
    description: testing/mochitest unittests
    platform:
        - linux64/opt
        - linux64/debug
        - linux64-asan/opt
    require-build: true
    always-target: false
    treeherder:
        symbol: py(mch)
    worker:
        by-platform:
            linux64.*:
                docker-image: {in-tree: "desktop1604-test"}
                max-run-time: 3600
    run:
        using: run-task
        command: >
            source /builds/worker/scripts/xvfb.sh &&
            start_xvfb '1600x1200x24' 0 &&
            cd /builds/worker/checkouts/gecko &&
            ./mach python-test --subsuite mochitest
    when:
        files-changed:
            - 'testing/mochitest/**'
            - 'testing/mozbase/moztest/moztest/selftest/**'
            - 'testing/mozharness/mozharness/base/log.py'
            - 'testing/mozharness/mozharness/mozilla/structuredlog.py'
            - 'testing/mozharness/mozharness/mozilla/testing/errors.py'
            - 'testing/profiles/prefs_general.js'

mozbase:
    description: testing/mozbase unit tests
    treeherder:
        symbol: py(mb)
    run:
        mach: python-test --subsuite mozbase
    when:
        files-changed:
            - 'testing/mozbase/**'

mozharness:
    description: mozharness integration tests
    treeherder:
        symbol: py(mh)
    run:
        using: run-task
        cache-dotcache: true
        command: >
            cd /builds/worker/checkouts/gecko/testing/mozharness &&
            /usr/local/bin/tox -e py27-hg4.3
    when:
        files-changed:
            - 'testing/mozharness/**'

mozlint:
    description: python/mozlint unit tests
    treeherder:
        symbol: py(ml)
    run:
        mach: python-test --subsuite mozlint
    when:
        files-changed:
            - 'python/mozlint/**'

mozterm:
    description: python/mozterm unit tests
    treeherder:
        symbol: py(term)
    run:
        mach: python-test --subsuite mozterm
    when:
        files-changed:
            - 'python/mozterm/**'

mozversioncontrol:
    description: python/mozversioncontrol unit tests
    treeherder:
        symbol: py(vcs)
    run:
        mach: python-test --subsuite mozversioncontrol
    when:
        files-changed:
            - 'python/mozversioncontrol/**'

reftest-harness:
    description: layout/tools/reftest unittests
    platform:
        - linux64/opt
        - linux64/debug
        - linux64-asan/opt
    require-build: true
    always-target: false
    treeherder:
        symbol: py(ref)
    worker:
        by-platform:
            linux64.*:
                docker-image: {in-tree: "desktop1604-test"}
                max-run-time: 3600
    run:
        using: run-task
        command: >
            source /builds/worker/scripts/xvfb.sh &&
            start_xvfb '1600x1200x24' 0 &&
            cd /builds/worker/checkouts/gecko &&
            ./mach python-test --subsuite reftest
    when:
        files-changed:
            - 'layout/tools/reftest/**'
            - 'testing/mozbase/moztest/moztest/selftest/**'
            - 'testing/mozharness/mozharness/base/log.py'
            - 'testing/mozharness/mozharness/mozilla/structuredlog.py'
            - 'testing/mozharness/mozharness/mozilla/testing/errors.py'

tryselect:
    description: tools/tryselect unit tests
    treeherder:
        symbol: py(try)
    run:
        mach: python-test --subsuite try
    when:
        files-changed:
            - 'tools/tryselect/**'
