# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
---
loader: gecko_taskgraph.loader.test:loader

kind-dependencies:
    - build
    - build-signing
    - signing-apk
    - repackage-signing-shippable-l10n-msix
    - repackage-signing-msix
    - repackage-signing
    - repackage
    - fetch
    - toolchain
    - build-extensions

transforms:
    - gecko_taskgraph.transforms.test:transforms
    - gecko_taskgraph.transforms.job:transforms
    - gecko_taskgraph.transforms.task:transforms

# Adding a new test type or running tests on a new platform? Be sure to review
# https://wiki.mozilla.org/Sheriffing/Job_Visibility_Policy

task-defaults:
    attributes:
        retrigger: true
    use-python: default
    use-uv: true
    require-signed-extensions:
        by-release-type:
            release|esr.*: true
            beta:
                by-test-platform:
                    .*-devedition/.*: false
                    default: true
            default: false
    docker-image:
        by-test-platform:
            linux1804.*:
                in-tree: ubuntu1804-test
            default:
                in-tree: ubuntu2404-test
    fetches:
        toolchain:
            by-test-platform:
                win.*:
                    - win32-minidump-stackwalk
                    - win32-fix-stacks
                macosx.*-64.*:
                    - macosx64-minidump-stackwalk
                    - macosx64-fix-stacks
                macosx.*-aarch64.*:
                    - macosx64-aarch64-minidump-stackwalk
                    - macosx64-aarch64-fix-stacks
                android-em-14.*:
                    - android34-system-image-x86_64-linux
                    - android34-avd-x86_64-linux
                    - android-emulator-linux
                    - linux64-minidump-stackwalk
                    - linux64-fix-stacks
                    - linux64-hostutils
                android-hw.*:
                    - linux64-minidump-stackwalk
                    - linux64-fix-stacks
                    - linux64-hostutils
                default:
                    - linux64-minidump-stackwalk
                    - linux64-fix-stacks
    suite:
        category: web-platform-tests
    instance-size: xlarge-noscratch
    max-run-time:
        by-test-platform:
            android-em.*/debug: 7200
            default: 5400
    mozharness:
        requires-signed-builds:
            by-test-platform:
                windows1.*:
                    by-variant:
                        msix: true
                        default: false
                default: false
        script: web_platform_tests.py
        config:
            by-test-platform:
                windows.*:
                    - web_platform_tests/prod_config_windows_taskcluster.py
                macosx.*:
                    - web_platform_tests/prod_config_mac.py
                android-em-14.*:
                    - android/android14-x86_64.py
                    - web_platform_tests/prod_config_android.py
                default:
                    - web_platform_tests/prod_config.py
                    - remove_executables.py
    target:
        by-test-platform:
            android-em.*: geckoview-test_runner.apk
            default: null

tasks:
    web-platform-tests:
        description: "Web platform test run"
        suite: web-platform-tests
        treeherder-symbol: W(wpt)
        virtualization: virtual
        tier:
            by-variant:
                no-fission:
                    by-test-platform:
                        linux.*: 2
                        default: default
                default:
                    by-test-platform:
                        android-em.*/debug-isolated-process: 2
                        default: default
        chunks:
            by-variant:
                privatebrowsing: dynamic
                inc-origin-init: dynamic
                privatebrowsing-inc-origin-init: dynamic
                default:
                    by-test-platform:
                        android.*/debug: 32
                        android.*: 24
                        linux.*64-tsan(-qr)?/opt: 32
                        linux.*64-asan(-qr)?/opt: 22
                        linux.*64-ccov.*/opt: 20
                        linux.*/debug: 16
                        macosx.*/debug: 18
                        windows.*32.*/opt: 12
                        windows.*/debug: 16
                        windows.*-ccov.*/opt: 14
                        default: 10
        max-run-time:
            by-test-platform:
                .*-ccov.*: 10800
                linux.*64-tsan(-qr)?/opt: 14400
                linux.*64-asan(-qr)?/opt: 14400
                linux.*64(-qr)?/debug: 10800
                macosx.*/debug: 10800
                default: 7200
        variants:
            - no-fission
            - geckoview-no-fission-no-ship
            - async-event-dispatching
            - privatebrowsing
            - inc-origin-init
            - privatebrowsing-inc-origin-init
        run-on-projects:
            by-variant:
                geckoview-no-fission-no-ship:
                    by-test-platform:
                        android-em.*/debug-isolated-process: []
                        android-em.*: built-projects
                        default: []
                no-fission:
                    by-test-platform:
                        android-em.*/debug-isolated-process: []
                        android.*: built-projects
                        linux1804-64(-qr)?/debug: ['mozilla-central']
                        linux1804-64(-shippable)?(-qr)?/opt: ['mozilla-central']
                        linux1804-64-asan(-qr)?/opt: ['mozilla-central']
                        linux2404-64/debug: ['mozilla-central']
                        linux2404-64(-shippable)?/opt: ['mozilla-central']
                        linux2404-64-asan/opt: ['mozilla-central']
                        default: []
                async-event-dispatching:
                    by-test-platform:
                        .*/opt: []  # try only for now
                        default: []
                privatebrowsing:
                    by-test-platform:
                        android.*: []
                        .*-wayland.*: []
                        default: built-projects
                inc-origin-init: []
                privatebrowsing-inc-origin-init: []
                default:
                    by-test-platform:
                        android.*: []
                        .*-wayland.*: []
                        default: built-projects
        mozharness:
            chunked: true
            extra-options:
                - --test-type=testharness
                - --skip-implementation-status=backlog
                - --skip-implementation-status=not-implementing
                - --skip-timeout
                - --skip-crash
                - --no-update-status-on-crash
                # Because we have a separate job for them, don't run the (core)
                # webgpu/* tests in the main WPT runs. (but still run tests in dirs
                # other than webgpu/* that are tagged webgpu, e.g. canvas tests)
                - --exclude-tag=webgpu
                - --exclude-tag=canvas
                - --exclude-tag=webcodecs
                - --exclude-tag=eme

    web-platform-tests-backlog:
        description: "Web platform test (backlog) run"
        treeherder-symbol: W-b(wpt)
        variants:
            - no-fission
        chunks:
            by-test-platform:
                android.*: 3
                default: 2
        max-run-time:
            by-test-platform:
                android.*/opt: 7200
                default: 3600
        run-on-projects:
            by-variant:
                no-fission:
                    by-test-platform:
                        android.*: ['mozilla-central']
                        default: []
                default:
                    by-test-platform:
                        android.*: []
                        .*-wayland.*: []
                        default: ['mozilla-central']
        test-manifest-loader: null  # don't load tests in the taskgraph
        tier: 2
        mozharness:
            chunked: true
            extra-options:
                - --test-type=testharness
                - --skip-implementation-status=implementing
                - --skip-implementation-status=not-implementing
                - --backlog
                - --no-update-status-on-crash
                - --exclude-tag=webgpu
                - --exclude-tag=webcodecs
                - --exclude-tag=eme

    web-platform-tests-webcodecs:
        description: "Web platform webcodecs test run"
        suite: web-platform-tests
        treeherder-symbol: W(codecs)
        virtualization: virtual
        tier: default
        chunks: 1
        max-run-time: 1800
        variants: []  # We don't need sw or nofis testing.
        run-on-projects: built-projects
        mozharness:
            chunked: true
            extra-options:
                - --test-type=testharness
                - --default-exclude
                - --tag=webcodecs
                - --no-update-status-on-crash

    web-platform-tests-eme:
        description: "Web platform EME test run"
        suite: web-platform-tests
        treeherder-symbol: W(eme)
        tier: default
        chunks: 1
        max-run-time: 1800
        variants:
            - eme-wmf
        run-on-projects:
            by-variant:
                eme-wmf:
                    by-test-platform:
                        windows1.*-64.*: ['autoland', 'mozilla-central']
                        default: []
                default:
                    by-test-platform:
                        android.*: []
                        .*-wayland.*: []
                        windows1.*: []
                        default: built-projects
        mozharness:
            chunked: true
            extra-options:
                - --test-type=testharness
                - --default-exclude
                - --tag=eme
                - --no-update-status-on-crash

    web-platform-tests-reftest:
        description: "Web platform reftest run"
        schedules-component: web-platform-tests-reftest
        treeherder-symbol: W(Wr)
        virtualization:
            by-test-platform:
                windows.*64.*/.*: virtual-with-gpu
                default: virtual
        chunks:
            by-test-platform:
                .*-ccov.*: 8
                android.*/debug: 16
                android.*: 8
                linux.*64-tsan(-qr)?/opt: 16
                linux1804-64(-qr)?/.*: 6
                linux1804-64-asan(-qr)?/.*: 6
                linux2404-64/.*: 6
                linux2404-64-asan/.*: 6
                macosx.*-64/debug: 6
                macosx.*-64/opt: 3
                windows.*-32.*/debug: 5
                windows.*-64.*/debug: 5
                default: 4
        variants:
            - no-fission
            - webrender-sw+no-fission
            - webrender-sw
            - draw-snapshot
        run-on-projects:
            by-variant:
                webrender-sw:
                    by-test-platform:
                        .*-32.*: []
                        linux.*64(-qr)?/debug: built-projects
                        windows.*/debug: built-projects
                        default: []
                webrender-sw+no-fission:
                    by-test-platform:
                        android-em.*/debug: built-projects
                        linux1804-64(-qr)?/.*: ['mozilla-central']
                        linux1804-64-shippable(-qr)?/opt: ['mozilla-central']
                        linux1804-64-asan(-qr)?/opt: ['mozilla-central']
                        linux2404-64/.*: ['mozilla-central']
                        linux2404-64-shippable/opt: ['mozilla-central']
                        linux2404-64-asan/opt: ['mozilla-central']
                        default: []
                no-fission:
                    by-test-platform:
                        android-em.*/debug-isolated-process: []
                        linux1804-64(-qr)?/.*: ['mozilla-central']
                        linux1804-64-shippable(-qr)?/opt: ['mozilla-central']
                        linux1804-64-asan(-qr)?/opt: ['mozilla-central']
                        linux2404-64/.*: ['mozilla-central']
                        linux2404-64-shippable/opt: ['mozilla-central']
                        linux2404-64-asan/opt: ['mozilla-central']
                        android.*: built-projects
                        default: []
                draw-snapshot:
                    by-test-platform:
                        linux2404.*/debug: built-projects
                        default: []
                default:
                    by-test-platform:
                        android.*: []
                        .*-wayland.*: []
                        default: built-projects
        tier:
            by-variant:
                no-fission:
                    by-test-platform:
                        linux.*: 2
                        default: default
                draw-snapshot: 2
                default:
                    by-test-platform:
                        android-em.*/debug-isolated-process: 2
                        default: default
        mozharness:
            extra-options:
                - --test-type=reftest
                - --skip-implementation-status=backlog
                - --skip-implementation-status=not-implementing
                - --skip-timeout
                - --skip-crash
                - --no-update-status-on-crash

    web-platform-tests-webgpu:
        description: "Web platform WebGPU test run"
        suite: web-platform-tests
        treeherder-symbol: W(webgpu)
        virtualization: virtual-with-gpu
        tier:
            by-test-platform:
                android.*: 2  # https://bugzilla.mozilla.org/show_bug.cgi?id=1849914
                macosx.*: default
                linux2204.*-64.*: 2  # https://bugzilla.mozilla.org/show_bug.cgi?id=1849912
                windows.*-64.*: default
                default: 2
        # Choice of `chunks`:
        # Time-to-TEST-START on Windows is ~7m (~9m for debug).
        # (though we're working on reducing this!)
        # Devs would love ~10-15m runs, but we don't want to be more than
        # 50% overhead, so let's aim for 15m (20m debug)
        chunks:
            by-test-platform:
                linux2204.*/debug.*: 25
                linux2204.*: 20
                windows.*-64.*/opt.*: 14
                default: 14
        max-run-time: 2700  # 45m
        variants: []  # We don't need sw or nofis testing.
        run-on-projects:
            by-test-platform:
                android.*: []  # https://bugzilla.mozilla.org/show_bug.cgi?id=1836811
                windows.*-64.*: built-projects
                default: ['trunk']
        mozharness:
            chunked: true
            extra-options:
                - --test-type=testharness
                - --skip-implementation-status=backlog
                - --skip-implementation-status=not-implementing
                - --default-exclude
                - --tag=webgpu
                - --exclude-tag=webgpu-long
                - --exclude-tag=canvas
                - --exclude-tag=webcodecs
                - --timeout-multiplier=5.0
        worker-type:
            by-test-platform:
                .*windows.*: win11-64-24h2-webgpu
                default: default

    web-platform-tests-webgpu-long:
        description: "Web platform WebGPU test run (long tests)"
        suite: web-platform-tests
        treeherder-symbol: W(webgpu-long)
        virtualization: virtual-with-gpu
        tier: 2
        chunks: 2
        max-run-time: 5400  # 90m
        variants: []  # We don't need sw or nofis testing.
        run-on-projects:
            by-test-platform:
                android.*: []  # https://bugzilla.mozilla.org/show_bug.cgi?id=1836811
                default: ['trunk']
        mozharness:
            chunked: true
            extra-options:
                - --test-type=testharness
                - --default-exclude
                - --tag=webgpu-long
                - --skip-implementation-status=backlog
                - --skip-implementation-status=not-implementing
                - --timeout-multiplier=5.0

    web-platform-tests-webgpu-backlog:
        description: "Web platform WebGPU test run (backlog)"
        suite: web-platform-tests
        treeherder-symbol: W(webgpu-backlog)
        virtualization: virtual-with-gpu
        tier: 3
        # Choice of `chunks`:
        # Time-to-TEST-START on Windows is ~7m (~9m for debug).
        # (though we're working on reducing this!)
        # Devs would love ~10-15m runs, but we don't want to be more than
        # 50% overhead, so let's aim for 15m (20m debug)
        chunks:
            by-test-platform:
                linux2204.*-64.*: 20
                macosx.*: 25
                windows.*-64.*/opt.*: 17
                windows.*-64.*/debug.*: 22
                default: 10
        max-run-time:
            by-test-platform:
                .*/debug: 5400  # 90m
                default: 3200  # 60m
        variants: []  # We don't need sw or nofis testing.
        run-on-projects: []  # Only run this manually, i.e., `mach try --preset webgpu`.
        mozharness:
            chunked: true
            extra-options:
                - --test-type=testharness
                - --default-exclude
                - --tag=webgpu
                - --exclude-tag=webgpu-long
                - --exclude-tag=canvas
                - --exclude-tag=webcodecs
                - --skip-implementation-status=implementing
                - --skip-implementation-status=not-implementing
                - --backlog
                - --timeout-multiplier=5.0
        worker-type:
            by-test-platform:
                .*windows.*: win11-64-24h2-webgpu
                default: default

    web-platform-tests-webgpu-backlog-long:
        description: "Web platform WebGPU test run (backlog, long tests)"
        suite: web-platform-tests
        treeherder-symbol: W(webgpu-backlog-long)
        virtualization: virtual-with-gpu
        tier: 3
        chunks:
            by-test-platform:
                macosx.*: 5
                windows.*-64.*: 6
                default: 4
        max-run-time: 5400  # 90m
        variants: []  # We don't need sw or nofis testing.
        run-on-projects: []  # Only run this manually, i.e., `mach try --preset webgpu`.
        mozharness:
            chunked: true
            extra-options:
                - --test-type=testharness
                - --default-exclude
                - --tag=webgpu-long
                - --skip-implementation-status=implementing
                - --skip-implementation-status=not-implementing
                - --backlog
                - --timeout-multiplier=5.0

    web-platform-tests-canvas:
        description: "Web platform Canvas test run"
        suite: web-platform-tests
        treeherder-symbol: W(canvas)
        virtualization: virtual-with-gpu
        tier:
            by-variant:
                no-fission:
                    by-test-platform:
                        linux.*: 2
                        default: default
                default:
                    by-test-platform:
                        android-em.*/debug-isolated-process: 3
                        default: default
        chunks:
            by-test-platform:
                windows.*: 2
                .*-tsan.*: 3
                linux.*/debug: 2
                linux.*-asan.*: 3
                default: 1
        max-run-time:
            by-test-platform:
                .*-tsan.*: 2700
                .*-asan.*: 2700
                .*-ccov.*: 2700
                default: 1800
        variants:
            - no-fission
        run-on-projects:
            by-variant:
                no-fission:
                    by-test-platform:
                        android-em.*/debug-isolated-process: []
                        android.*: built-projects
                        linux1804-64(-qr)?/.*: ['mozilla-central']
                        linux1804-64-shippable(-qr)?/opt: ['mozilla-central']
                        linux1804-64-asan(-qr)?/opt: ['mozilla-central']
                        linux2404-64/.*: ['mozilla-central']
                        linux2404-64-shippable/opt: ['mozilla-central']
                        linux2404-64-asan/opt: ['mozilla-central']
                        default: []
                default:
                    by-test-platform:
                        android.*: []
                        .*-wayland.*: []
                        default: built-projects
        mozharness:
            chunked: true
            extra-options:
                - --test-type=testharness
                - --skip-implementation-status=backlog
                - --skip-implementation-status=not-implementing
                - --skip-timeout
                - --skip-crash
                - --no-update-status-on-crash
                # Because we have a separate job for them, don't run the (core)
                # webgpu/* tests in the main WPT runs. (but still run tests in dirs
                # other than webgpu/* that are tagged webgpu, e.g. canvas tests)
                - --default-exclude
                - --tag=canvas
                - --exclude-tag=webgpu
                - --exclude-tag=webcodecs

    web-platform-tests-reftest-backlog:
        description: "Web platform reftest (backlog) run"
        schedules-component: web-platform-tests-reftest
        treeherder-symbol: W-b(Wr)
        virtualization: virtual
        chunks: 1
        variants:
            - no-fission
        run-on-projects:
            by-variant:
                no-fission:
                    by-test-platform:
                        android.*: ['mozilla-central']
                        default: []
                default:
                    by-test-platform:
                        android.*: []
                        .*-wayland.*: []
                        default: ['mozilla-central']
        test-manifest-loader: null  # don't load tests in the taskgraph
        tier: 2
        mozharness:
            extra-options:
                - --test-type=reftest
                - --skip-implementation-status=implementing
                - --skip-implementation-status=not-implementing
                - --backlog
                - --no-update-status-on-crash
                - --exclude-tag=webgpu
                - --exclude-tag=webcodecs
                - --exclude-tag=eme

    web-platform-tests-wdspec:
        description: "Web platform webdriver-spec run"
        schedules-component: web-platform-tests-wdspec
        treeherder-symbol: W(Wd)
        chunks:
            by-test-platform:
                .*-ccov.*: 6
                .*-tsan.*: 8
                .*/debug: 6
                default: 5
        mozharness:
            extra-options:
                by-test-platform:
                    android-em.*:
                        - --test-type=wdspec
                        - --setpref=gfx.canvas.accelerated=false
                    default:
                        - --test-type=wdspec
        variants:
            - no-fission
            - geckoview-no-fission-no-ship
            - headless
            - async-event-dispatching
        run-on-projects:
            by-variant:
                headless:
                    by-test-platform:
                        android.*: []
                        default: built-projects
                no-fission:
                    by-test-platform:
                        linux1804-64(-qr)?/.*: ['mozilla-central']
                        linux1804-64-shippable(-qr)?/opt: ['mozilla-central']
                        linux1804-64-asan(-qr)?/opt: ['mozilla-central']
                        linux2404-64/.*: ['mozilla-central']
                        linux2404-64-shippable/opt: ['mozilla-central']
                        linux2404-64-asan/opt: ['mozilla-central']
                        android.*: built-projects
                        default: []
                geckoview-no-fission-no-ship:
                    by-test-platform:
                        android-em.*/debug-isolated-process: []
                        android-em.*: built-projects
                        default: []
                async-event-dispatching:
                    by-test-platform:
                        .*/opt: []  # try only for now
                        default: []
                default: built-projects
        tier:
            by-variant:
                no-fission:
                    by-test-platform:
                        linux.*: 2
                        default: default
                default: default
        fetches:
            toolchain:
                by-test-platform:
                    android-em-14.*:
                        - android34-system-image-x86_64-linux
                        - android34-avd-x86_64-linux
                        - android-emulator-linux
                        - linux64-geckodriver
                        - linux64-minidump-stackwalk
                        - linux64-fix-stacks
                        - linux64-hostutils
                    linux.*64.*:
                        - linux64-geckodriver
                        - linux64-minidump-stackwalk
                        - linux64-fix-stacks
                    macosx.*-64.*:
                        - macosx64-geckodriver
                        - macosx64-minidump-stackwalk
                        - macosx64-fix-stacks
                    macosx.*-aarch64.*:
                        - macosx64-aarch64-geckodriver
                        - macosx64-aarch64-minidump-stackwalk
                        - macosx64-aarch64-fix-stacks
                    win.*-32.*:
                        - win32-geckodriver
                        - win32-minidump-stackwalk
                        - win32-fix-stacks
                    win.*-64.*:
                        - win64-geckodriver
                        - win32-minidump-stackwalk
                        - win32-fix-stacks
                    default:
                        - linux64-minidump-stackwalk
                        - linux64-fix-stacks
                        - linux64-geckodriver

    web-platform-tests-crashtest:
        description: "Web platform crashtests run"
        schedules-component: web-platform-tests-crashtest
        treeherder-symbol: W(Wc)
        chunks:
            by-test-platform:
                .*-tsan.*: 4
                default: 1
        mozharness:
            extra-options:
                - --test-type=crashtest
        variants:
            - no-fission
            - webrender-sw
            - webrender-sw+no-fission
        run-on-projects:
            by-variant:
                webrender-sw:
                    by-test-platform:
                        android-em.*/debug: built-projects
                        .*-32.*: []
                        linux.*64(-qr)?/debug: built-projects
                        macosx1015.*-64(-qr)?/debug: built-projects
                        macosx1470.*-64/debug: built-projects
                        windows.*/debug: built-projects
                        default: []
                webrender-sw+no-fission:
                    by-test-platform:
                        android-em.*/debug: built-projects
                        linux1804-64(-qr)?/.*: ['mozilla-central']
                        linux1804-64-shippable(-qr)?/opt: ['mozilla-central']
                        linux1804-64-asan(-qr)?/opt: ['mozilla-central']
                        linux2404-64/.*: ['mozilla-central']
                        linux2404-64-shippable/opt: ['mozilla-central']
                        linux2404-64-asan/opt: ['mozilla-central']
                        default: []
                no-fission:
                    by-test-platform:
                        android-em.*/debug-isolated-process: []
                        linux1804-64(-qr)?/.*: ['mozilla-central']
                        linux1804-64-shippable(-qr)?/opt: ['mozilla-central']
                        linux1804-64-asan(-qr)?/opt: ['mozilla-central']
                        linux2404-64/.*: ['mozilla-central']
                        linux2404-64-shippable/opt: ['mozilla-central']
                        linux2404-64-asan/opt: ['mozilla-central']
                        android.*: built-projects
                        default: []
                default:
                    by-test-platform:
                        android-em.*/debug: built-projects
                        android.*: []
                        default: built-projects
        tier:
            by-variant:
                no-fission:
                    by-test-platform:
                        linux.*: 2
                        default: default
                webrender-sw+no-fission:
                    by-test-platform:
                        linux.*: 2
                        default: default
                default: default

    web-platform-tests-print-reftest:
        description: "Web platform print-reftest run"
        schedules-component: web-platform-tests-print-reftest
        treeherder-symbol: W(Wp)
        chunks: 1
        test-manifest-loader: null  # don't load tests in the taskgraph
        tier:
            by-variant:
                no-fission:
                    by-test-platform:
                        linux.*: 2
                        default: default
                webrender-sw+no-fission:
                    by-test-platform:
                        linux.*: 2
                        default: default
                default: default
        variants:
            - no-fission
            - webrender-sw
            - webrender-sw+no-fission
        run-on-projects:
            by-variant:
                webrender-sw:
                    by-test-platform:
                        android.*: []
                        .*-32.*: []
                        linux.*64(-qr)?/debug: built-projects
                        windows.*/debug: built-projects
                        default: []
                webrender-sw+no-fission:
                    by-test-platform:
                        android-em.*/debug: built-projects
                        linux1804-64(-qr)?/.*: ['mozilla-central']
                        linux1804-64-shippable(-qr)?/opt: ['mozilla-central']
                        linux1804-64-asan(-qr)?/opt: ['mozilla-central']
                        linux2404-64/.*: ['mozilla-central']
                        linux2404-64-shippable/opt: ['mozilla-central']
                        linux2404-64-asan/opt: ['mozilla-central']
                        default: []
                no-fission:
                    by-test-platform:
                        linux1804-64(-qr)?/.*: ['mozilla-central']
                        linux1804-64-shippable(-qr)?/opt: ['mozilla-central']
                        linux1804-64-asan(-qr)?/opt: ['mozilla-central']
                        linux2404-64/.*: ['mozilla-central']
                        linux2404-64-shippable/opt: ['mozilla-central']
                        linux2404-64-asan/opt: ['mozilla-central']
                        android.*: built-projects
                        default: []
                default:
                    by-test-platform:
                        android.*: []
                        .*-wayland.*: []
                        default: built-projects
        mozharness:
            extra-options:
                - --test-type=print-reftest
                - --no-update-status-on-crash

    test-verify-wpt:
        description: "Extra verification of web-platform tests modified on this push"
        suite:
            category: test-verify
            name: test-verify-wpt
        treeherder-symbol: TVw
        max-run-time: 10800
        run-on-projects:
            by-test-platform:
                # do not run on asan, ccov, shippable or wayland
                .*-asan.*: []
                .*-ccov.*: []
                .*-shippable.*: []
                .*-wayland.*: []
                # do not run on beta or release: usually just confirms earlier results
                default: ['integration']
        built-projects-only: true
        test-manifest-loader: null  # don't load tests in the taskgraph
        optimization:
            test-verify: ["test-verify-wpt"]
        tier: 2
        mozharness:
            extra-options:
                - --verify
        fetches:
            toolchain:
                by-test-platform:
                    linux.*64.*:
                        - linux64-geckodriver
                        - linux64-minidump-stackwalk
                        - linux64-fix-stacks
                    macosx.*-64.*:
                        - macosx64-geckodriver
                        - macosx64-minidump-stackwalk
                        - macosx64-fix-stacks
                    macosx.*-aarch64.*:
                        - macosx64-aarch64-geckodriver
                        - macosx64-aarch64-minidump-stackwalk
                        - macosx64-aarch64-fix-stacks
                    win.*-32.*:
                        - win32-geckodriver
                        - win32-minidump-stackwalk
                        - win32-fix-stacks
                    win.*-64.*:
                        - win64-geckodriver
                        - win32-minidump-stackwalk
                        - win32-fix-stacks
                    default:
                        - linux64-minidump-stackwalk
                        - linux64-fix-stacks
                        - linux64-geckodriver

    test-coverage-wpt:
        description: "Per web-platform test coverage"
        suite:
            category: test-coverage
            name: test-coverage-wpt
        schedules-component: test-coverage-wpt
        treeherder-symbol: TCw
        max-run-time: 10800
        variants:
            - no-fission
            - webrender-sw+no-fission
        run-on-projects:
            by-variant:
                webrender-sw+no-fission:
                    by-test-platform:
                        android-em.*/debug: built-projects
                        default: []
                no-fission:
                    by-test-platform:
                        android-em.*/debug: built-projects
                        default: []
                default:
                    by-test-platform:
                        .*-ccov.*: built-projects
                        default: []
        test-manifest-loader: null  # don't load tests in the taskgraph
        tier: 2
        mozharness:
            extra-options:
                - --per-test-coverage
                - --exclude-tag=webgpu  # https://bugzilla.mozilla.org/show_bug.cgi?id=1915310
