Command-Line Arguments

The wpt command-line application offers a number of features for interacting with WPT. The functionality is organized into “sub-commands”, and each accepts a different set of command-line arguments.

This page documents all of the available sub-commands and associated arguments.

usage: wpt [-h]
           {build-docs,test-jobs,make-hosts-file,regen-certs,update-built,tc-download,tc-decision,tc-sink-task,docker-run,docker-push,lint,manifest,manifest-download,test-paths,spec,serve,serve-wave,run,create,update-expectations,files-changed,tests-affected,install,rev-list,install-android-emulator,start-android-emulator,web-features-manifest}
           ...

Sub-commands

build-docs

Build documentation

wpt build-docs [-h] [--type TYPE] [--docker] [--serve [SERVE]]

Named Arguments

--type

Output type (default: html)

Default: “html”

--docker

Run inside the docs docker image

Default: False

--serve

Run a server on the specified port (default: 8000)

test-jobs

List test jobs that should run for a set of commits

wpt test-jobs [-h] [--all] [--includes [INCLUDES ...]] [--json] [revish]

Positional Arguments

revish

Commits to consider. Defaults to the commits on the current branch

Named Arguments

--all

List all jobs unconditionally.

Default: False

--includes

Jobs to check for. Return code is 0 if all jobs are found, otherwise 1

--json

Output jobs as JSON, instead of one per line

Default: False

make-hosts-file

Output a hosts file to stdout

wpt make-hosts-file [-h] [address]

Positional Arguments

address

Address that hosts should point at

Default: “127.0.0.1”

regen-certs

Regenerate the WPT certificates

wpt regen-certs [-h] [--checkend-seconds CHECKEND_SECONDS] [--force]

Named Arguments

--checkend-seconds

The number of seconds the certificates must be valid for

Default: 5184000

--force

Regenerate certificates even if not reaching expiry

Default: False

update-built

Update built tests

wpt update-built [-h] [--list]
                 [--include [{canvas,conformance-checkers,css-images,css-ui,css-writing-modes,fetch,html5lib,infrastructure,mimesniff,speculative-parsing} ...]]

Named Arguments

--list

List suites that can be updated and the related script files

Default: False

--include

Possible choices: canvas, conformance-checkers, css-images, css-ui, css-writing-modes, fetch, html5lib, infrastructure, mimesniff, speculative-parsing

Suites to update (default is to update everything)

tc-download

Download logs from taskcluster

wpt tc-download [-h] [--ref REF] [--artifact-name ARTIFACT_NAME]
                [--repo-name REPO_NAME] [--token-file TOKEN_FILE]
                [--out-dir OUT_DIR]

Named Arguments

--ref

Branch (in the GitHub repository) or commit to fetch logs for

Default: “master”

--artifact-name

Log type to fetch

Default: “wpt_report.json.gz”

--repo-name

GitHub repo name in the format owner/repo. This must be the repo from which the Taskcluster run was scheduled (for PRs this is the repo into which the PR would merge)

Default: “web-platform-tests/wpt”

--token-file

File containing GitHub token

--out-dir

Path to save the logfiles

Default: “.”

tc-decision

Run the decision task

wpt tc-decision [-h] [--event-path EVENT_PATH] [--dry-run]
                [--tasks-path TASKS_PATH]

Named Arguments

--event-path

Path to file containing serialized GitHub event

--dry-run

Don’t actually create the tasks, just output the tasks that would be created

Default: False

--tasks-path

Path to file in which to write payload for all scheduled tasks

tc-sink-task

Run the sink task

wpt tc-sink-task [-h] [--github-checks-text-file GITHUB_CHECKS_TEXT_FILE]
                 tasks [tasks ...]

Positional Arguments

tasks

A set of Taskcluster task ids to verify the state of.

Named Arguments

--github-checks-text-file

Path to GitHub checks output file for Taskcluster runs

docker-run

Run wpt docker image

wpt docker-run [-h] [--rebuild] [--checkout CHECKOUT] [--privileged]
               [--tag TAG]

Named Arguments

--rebuild

Force rebuild of image

Default: False

--checkout

Revision to checkout in the image. If this is not supplied we mount the wpt checkout on the host as /home/test/web-platform-tests/

--privileged

Run the image in priviledged mode (required for emulators)

Default: False

--tag

Docker image tag to use (default wpt:local)

Default: “wpt:local”

docker-push

Build and push wpt docker image

wpt docker-push [-h] [--tag TAG] [--force]

Named Arguments

--tag

Tag to use (default is taken from .taskcluster.yml)

--force

Ignore warnings and push anyway

Default: False

lint

Run the lint

wpt lint [-h] [--json] [--markdown] [--repo-root REPO_ROOT]
         [--ignore-glob IGNORE_GLOB] [--all]
         [--github-checks-text-file GITHUB_CHECKS_TEXT_FILE] [-j JOBS]
         [--paths-file PATHS_FILE]
         [paths ...]

Positional Arguments

paths

List of paths to lint

Named Arguments

--json

Output machine-readable JSON format

Default: False

--markdown

Output markdown

Default: False

--repo-root

The WPT directory. Use this option if the lint script exists outside the repository

--ignore-glob

Additional file glob to ignore (repeat to add more). Globs are matched against paths relative to REPO_ROOT using fnmatch, except that path separators are normalized.

--all

If no paths are passed, try to lint the whole working directory, not just files that changed

Default: False

--github-checks-text-file

Path to GitHub checks output file for Taskcluster runs

-j, --jobs

Level to parallelism to use (defaults to 0, which detects the number of CPUs)

Default: 0

--paths-file

File containing a list of files to lint, one per line

manifest

Update the MANIFEST.json file

wpt manifest [-h] [-v] [-p PATH] [--tests-root TESTS_ROOT] [-r]
             [--url-base URL_BASE] [--no-download] [--cache-root CACHE_ROOT]
             [--no-parallel]

Named Arguments

-v, --verbose

Turn on verbose logging

Default: False

-p, --path

Path to manifest file.

--tests-root

Path to root of tests.

Default: /home/runner/work/wpt/wpt

-r, --rebuild

Force a full rebuild of the manifest.

Default: False

--url-base

Base url to use as the mount point for tests in this manifest.

Default: “/”

--no-download

Never attempt to download the manifest.

Default: True

--cache-root

Path in which to store any caches (default <tests_root>/.wptcache/)

Default: “/home/runner/work/wpt/wpt/.wptcache”

--no-parallel

Do not parallelize building the manifest

Default: True

manifest-download

Download recent pregenerated MANIFEST.json file

wpt manifest-download [-h] [-p PATH] [--tests-root TESTS_ROOT] [--force]

Named Arguments

-p, --path

Path to manifest file.

--tests-root

Path to root of tests.

Default: /home/runner/work/wpt/wpt

--force

Always download, even if the existing manifest is recent

Default: False

test-paths

Print test paths given a set of test ids

wpt test-paths [-h] [-p PATH] [--src-root SRC_ROOT] [--tests-root TESTS_ROOT]
               [--no-update] [-r] [--url-base URL_BASE]
               [--cache-root CACHE_ROOT] [--json]
               test_ids [test_ids ...]

Positional Arguments

test_ids

Test ids for which to get paths

Named Arguments

-p, --path

Path to manifest file.

--src-root

Path to root of sourcetree.

--tests-root

Path to root of tests.

Default: /home/runner/work/wpt/wpt

--no-update

Don’t update manifest before continuing

Default: True

-r, --rebuild

Force a full rebuild of the manifest.

Default: False

--url-base

Base url to use as the mount point for tests in this manifest.

Default: “/”

--cache-root

Path in which to store any caches (default <tests_root>/.wptcache/)

Default: “/home/runner/work/wpt/wpt/.wptcache”

--json

Output as JSON

Default: False

spec

Update the SPEC_MANIFEST.json file

wpt spec [-h] [-v] [-p PATH] [--tests-root TESTS_ROOT] [--url-base URL_BASE]
         [--cache-root CACHE_ROOT] [--no-parallel]

Named Arguments

-v, --verbose

Turn on verbose logging

Default: False

-p, --path

Path to manifest file.

--tests-root

Path to root of tests.

Default: /home/runner/work/wpt/wpt

--url-base

Base url to use as the mount point for tests in this manifest.

Default: “/”

--cache-root

Path in which to store any caches (default <tests_root>/.wptcache/)

Default: “/home/runner/work/wpt/wpt/.wptcache”

--no-parallel

Do not parallelize building the manifest

Default: True

serve

Run wptserve server

wpt serve [-h] [--latency LATENCY] [--config CONFIG_PATH]
          [--doc_root DOC_ROOT] [--ws_doc_root WS_DOC_ROOT]
          [--ws_extra WS_EXTRA] [--inject-script INJECT_SCRIPT]
          [--alias_file ALIAS_FILE] [--no-h2] [--webtransport-h3]
          [--exit-after-start] [--verbose]

Named Arguments

--latency

Artificial latency to add before sending http responses, in ms

--config

Path to external config file

--doc_root

Path to document root. Overrides config.

--ws_doc_root

Path to WebSockets document root. Overrides config.

--ws_extra

Path to extra directory containing ws handlers. Overrides config.

Default: []

--inject-script

Path to script file to inject, useful for testing polyfills.

--alias_file

File with entries for aliases/multiple doc roots. In form of /ALIAS_NAME/, DOC_ROOTn

--no-h2

Disable the HTTP/2.0 server

--webtransport-h3

Enable WebTransport over HTTP/3 server

Default: False

--exit-after-start

Exit after starting servers

Default: False

--verbose

Enable verbose logging

Default: False

serve-wave

Run wptserve server for WAVE

wpt serve-wave [-h] [--latency LATENCY] [--config CONFIG_PATH]
               [--doc_root DOC_ROOT] [--ws_doc_root WS_DOC_ROOT]
               [--ws_extra WS_EXTRA] [--inject-script INJECT_SCRIPT]
               [--alias_file ALIAS_FILE] [--no-h2] [--webtransport-h3]
               [--exit-after-start] [--verbose] [--report]

Named Arguments

--latency

Artificial latency to add before sending http responses, in ms

--config

Path to external config file

--doc_root

Path to document root. Overrides config.

--ws_doc_root

Path to WebSockets document root. Overrides config.

--ws_extra

Path to extra directory containing ws handlers. Overrides config.

Default: []

--inject-script

Path to script file to inject, useful for testing polyfills.

--alias_file

File with entries for aliases/multiple doc roots. In form of /ALIAS_NAME/, DOC_ROOTn

--no-h2

Disable the HTTP/2.0 server

--webtransport-h3

Enable WebTransport over HTTP/3 server

Default: False

--exit-after-start

Exit after starting servers

Default: False

--verbose

Enable verbose logging

Default: False

--report

Flag for enabling the WPTReporting server

Default: False

run

Run tests in a browser

wpt run
        [--channel {stable,release,beta,dev,canary,nightly,preview,experimental}]
        [--affected AFFECTED] [--yes] [--install-browser]
        [--install-webdriver] [--logcat-dir LOGCAT_DIR] [-h]
        [--manifest-update] [--no-manifest-update] [--manifest-download]
        [--no-manifest-download] [--timeout-multiplier TIMEOUT_MULTIPLIER]
        [--run-by-dir [RUN_BY_DIR]] [-f] [--processes PROCESSES]
        [--max-restarts MAX_RESTARTS] [--no-capture-stdio]
        [--no-fail-on-unexpected] [--no-fail-on-unexpected-pass]
        [--no-restart-on-new-group] [--list-test-groups] [--list-disabled]
        [--list-tests] [--verify] [--verify-log-full]
        [--verify-repeat-loop VERIFY_REPEAT_LOOP]
        [--verify-repeat-restart VERIFY_REPEAT_RESTART]
        [--verify-no-chaos-mode | --verify-chaos-mode]
        [--verify-max-time VERIFY_MAX_TIME]
        [--repeat-max-time REPEAT_MAX_TIME]
        [--verify-no-output-results | --verify-output-results]
        [--test-types [{wdspec,reftest,crashtest,testharness,print-reftest} ...]]
        [--subsuite-file SUBSUITE_FILE] [--subsuite SUBSUITES]
        [--small-subsuite-size SMALL_SUBSUITE_SIZE] [--include INCLUDE]
        [--include-file INCLUDE_FILE] [--exclude EXCLUDE]
        [--exclude-file EXCLUDE_FILE] [--include-manifest INCLUDE_MANIFEST]
        [--test-groups TEST_GROUPS_FILE] [--skip-timeout] [--skip-crash]
        [--skip-implementation-status {not-implementing,backlog,implementing}]
        [--enable-webtransport-h3] [--no-enable-webtransport-h3] [--tag TAGS]
        [--exclude-tag EXCLUDE_TAGS] [--default-exclude]
        [--debugger [DEBUGGER]] [--debugger-args DEBUGGER_ARGS]
        [--rerun RERUN] [--repeat REPEAT] [--repeat-until-unexpected]
        [--retry-unexpected RETRY_UNEXPECTED] [--pause-after-test]
        [--no-pause-after-test] [--debug-test] [--pause-on-unexpected]
        [--no-restart-on-unexpected] [--symbols-path SYMBOLS_PATH]
        [--stackwalk-binary STACKWALK_BINARY] [--pdb] [--leak-check]
        [--no-leak-check] [--adb-binary ADB_BINARY]
        [--package-name PACKAGE_NAME] [--keep-app-data-directory]
        [--device-serial DEVICE_SERIAL] [--binary BINARY]
        [--binary-arg BINARY_ARGS] [--webdriver-binary BINARY]
        [--webdriver-arg WEBDRIVER_ARGS] [--metadata METADATA_ROOT]
        [--tests TESTS_ROOT] [--manifest MANIFEST_PATH] [--run-info RUN_INFO]
        [--product {android_webview,chrome,chrome_android,chrome_ios,chromium,edge,firefox,firefox_android,headless_shell,safari,sauce,servo,servodriver,opera,webkit,webkitgtk_minibrowser,wpewebkit_minibrowser,wktr,epiphany,ladybird}]
        [--browser-version BROWSER_VERSION]
        [--browser-channel BROWSER_CHANNEL] [--config CONFIG]
        [--install-fonts] [--no-install-fonts] [--font-dir FONT_DIR]
        [--inject-script INJECT_SCRIPT] [--headless] [--no-headless]
        [--instrument-to-file INSTRUMENT_TO_FILE]
        [--suppress-handler-traceback] [--no-suppress-handler-traceback]
        [--ws-extra WS_EXTRA] [--debug-build | --release-build]
        [--total-chunks TOTAL_CHUNKS] [--this-chunk THIS_CHUNK]
        [--chunk-type {none,hash,id_hash,dir_hash}]
        [--ssl-type {openssl,pregenerated,none}]
        [--openssl-binary OPENSSL_BINARY] [--certutil-binary CERTUTIL_BINARY]
        [--ca-cert-path CA_CERT_PATH] [--host-key-path HOST_KEY_PATH]
        [--host-cert-path HOST_CERT_PATH] [--prefs-root PREFS_ROOT]
        [--preload-browser] [--no-preload-browser] [--disable-e10s]
        [--disable-fission] [--stackfix-dir STACKFIX_DIR]
        [--specialpowers-path SPECIALPOWERS_PATH] [--setpref PREF=VALUE]
        [--reftest-internal] [--reftest-external]
        [--reftest-screenshot {always,fail,unexpected}]
        [--chaos [CHAOS_MODE_FLAGS]] [--setenv ENV]
        [--user-stylesheet USER_STYLESHEETS] [--enable-mojojs]
        [--mojojs-path MOJOJS_PATH] [--enable-swiftshader]
        [--enable-experimental] [--no-enable-experimental]
        [--enable-sanitizer] [--reuse-window] [--sauce-browser SAUCE_BROWSER]
        [--sauce-platform SAUCE_PLATFORM] [--sauce-version SAUCE_VERSION]
        [--sauce-build SAUCE_BUILD] [--sauce-tags [SAUCE_TAGS ...]]
        [--sauce-tunnel-id SAUCE_TUNNEL_ID] [--sauce-user SAUCE_USER]
        [--sauce-key SAUCE_KEY] [--sauce-connect-binary SAUCE_CONNECT_BINARY]
        [--sauce-init-timeout SAUCE_INIT_TIMEOUT]
        [--sauce-connect-arg SAUCE_CONNECT_ARGS]
        [--github-checks-text-file GITHUB_CHECKS_TEXT_FILE]
        [--webkit-port WEBKIT_PORT] [--kill-safari] [--log-raw LOG_RAW]
        [--log-unittest LOG_UNITTEST] [--log-xunit LOG_XUNIT]
        [--log-html LOG_HTML] [--log-mach LOG_MACH] [--log-tbpl LOG_TBPL]
        [--log-grouped LOG_GROUPED] [--log-chromium LOG_CHROMIUM]
        [--log-wptreport LOG_WPTREPORT]
        [--log-wptscreenshot LOG_WPTSCREENSHOT]
        [--log-raw-level LOG_RAW_LEVEL] [--log-mach-verbose]
        [--log-mach-level LOG_MACH_LEVEL] [--log-mach-buffer LOG_MACH_BUFFER]
        [--log-mach-screenshot] [--log-mach-no-screenshot]
        [--log-tbpl-compact] [--log-tbpl-level LOG_TBPL_LEVEL]
        [--log-tbpl-buffer LOG_TBPL_BUFFER]
        [--log-wptscreenshot-api LOG_WPTSCREENSHOT_API]
        product [test_list ...]

Positional Arguments

product

Browser to run tests in

test_list

List of URLs for tests to run, or paths including tests to run. (equivalent to –include)

Named Arguments

--channel

Possible choices: stable, release, beta, dev, canary, nightly, preview, experimental

Name of browser release channel (default: nightly). “stable” and “release” are synonyms for the latest browser stable release; “beta” is the beta release; “dev” is only meaningful for Chrome (i.e. Chrome Dev); “nightly”, “experimental”, and “preview” are all synonyms for the latest available development or trunk release. (For WebDriver installs, we attempt to select an appropriate, compatible version for the latest browser release on the selected channel.) This flag overrides –browser-channel.

Default: “nightly”

--affected

Run affected tests since revish

--yes, -y

Don’t prompt before installing components

Default: True

--install-browser

Install the browser from the release channel specified by –channel (or the nightly channel by default).

Default: False

--install-webdriver

Install WebDriver from the release channel specified by –channel (or the nightly channel by default).

Default: False

--logcat-dir

Directory to write Android logcat files to

--manifest-update

Regenerate the test manifest.

--no-manifest-update

Prevent regeneration of the test manifest.

Default: True

--manifest-download

Attempt to download a preexisting manifest when updating.

--no-manifest-download

Prevent download of the test manifest.

Default: True

--timeout-multiplier

Multiplier relative to standard test timeout to use

--run-by-dir

Split run into groups by directories. With a parameter,limit the depth of splits e.g. –run-by-dir=1 to split by top-leveldirectory

Default: False

-f, --fully-parallel

Run every test in a separate group for fully parallelism.

Default: False

--processes

Number of simultaneous processes to use

--max-restarts

Maximum number of browser restart retries

Default: 5

--no-capture-stdio

Don’t capture stdio and write to logging

Default: False

--no-fail-on-unexpected

Exit with status code 0 when test expectations are violated

Default: True

--no-fail-on-unexpected-pass

Exit with status code 0 when all unexpected results are PASS

Default: True

--no-restart-on-new-group

Don’t restart test runner when start a new test group

Default: True

--debug-build

Build is a debug build (overrides any mozinfo file)

--release-build

Build is a release (overrides any mozinfo file)

Mode

--list-test-groups

List the top level directories containing tests that will run.

Default: False

--list-disabled

List the tests that are disabled on the current platform

Default: False

--list-tests

List all tests that will run

Default: False

--verify

Run a stability check on the selected tests

Default: False

--verify-log-full

Output per-iteration test results when running verify

Default: False

--verify-repeat-loop

Number of iterations for a run that reloads each test without restart.

Default: 10

--verify-repeat-restart

Number of iterations, for a run that restarts the runner between each iteration

Default: 5

--verify-no-chaos-mode

Disable chaos mode when running on Firefox

Default: True

--verify-chaos-mode

Enable chaos mode when running on Firefox

Default: True

--verify-max-time

The maximum number of minutes for the job to run

--repeat-max-time

The maximum number of minutes for the test suite to attempt repeat runs

Default: 100

--verify-no-output-results

Prints individuals test results and messages

Default: True

--verify-output-results

Disable printing individuals test results and messages

Default: True

Test Selection

--test-types

Possible choices: wdspec, reftest, crashtest, testharness, print-reftest

Test types to run

Default: {‘wdspec’, ‘reftest’, ‘crashtest’, ‘testharness’, ‘print-reftest’}

--subsuite-file

Path to JSON file containing subsuite configuration

--subsuite

Subsuite names to run. Runs all subsuites when omitted.

--small-subsuite-size

Maximum number of tests a subsuite can have to be treated as small subsuite.Tests from a small subsuite will be grouped in one group.

Default: 50

--include

URL prefix to include

--include-file

A file listing URL prefix for tests

--exclude

URL prefix to exclude

--exclude-file

A file listing URL prefix for tests

--include-manifest

Path to manifest listing tests to include

--test-groups

Path to json file containing a mapping {group_name: [test_ids]}

--skip-timeout

Skip tests that are expected to time out

Default: False

--skip-crash

Skip tests that are expected to crash

Default: False

--skip-implementation-status

Possible choices: not-implementing, backlog, implementing

Skip tests that have the given implementation status

--enable-webtransport-h3

Enable tests that require WebTransport over HTTP/3 server (default: false)

--no-enable-webtransport-h3

Do not enable WebTransport tests on experimental channels

Default: True

--tag

Labels applied to tests to include in the run. Labels starting dir: are equivalent to top-level directories.

--exclude-tag

Labels applied to tests to exclude in the run. Takes precedence over –tag. Labels starting dir: are equivalent to top-level directories.

--default-exclude

Only run the tests explicitly given in arguments. No tests will run if the list is empty, and the program will exit with status code 0.

Default: False

Debugging

--debugger

run under a debugger, e.g. gdb or valgrind

--debugger-args

arguments to the debugger

--rerun

Number of times to re run each test without restarts

Default: 1

--repeat

Number of times to run the tests, restarting between each run

Default: 1

--repeat-until-unexpected

Run tests in a loop until one returns an unexpected result

--retry-unexpected

Maximum number of times to retry unexpected tests. A test is retried until it gets one of the expected status, or until it exhausts the maximum number of retries.

Default: 0

--pause-after-test

Halt the test runner after each test (this happens by default if only a single test is run)

--no-pause-after-test

Don’t halt the test runner irrespective of the number of tests run

Default: True

--debug-test

Run tests with additional debugging features enabled

Default: False

--pause-on-unexpected

Halt the test runner when an unexpected result is encountered

Default: False

--no-restart-on-unexpected

Don’t restart on an unexpected result

Default: True

--symbols-path

Path or url to symbols file used to analyse crash minidumps.

--stackwalk-binary

Path to stackwalker program used to analyse minidumps.

--pdb

Drop into pdb on python exception

Default: False

--leak-check

Enable leak checking for supported browsers (Gecko: enabled by default for debug builds, silently ignored for opt, mobile)

--no-leak-check

Disable leak checking

Android specific arguments

--adb-binary

Path to adb binary to use

--package-name

Android package name to run tests against

--keep-app-data-directory

Don’t delete the app data directory

Default: False

--device-serial

Running Android instances to connect to, if not emulator-5554

Default: []

Configuration

--binary

Desktop binary to run tests against

--binary-arg

Extra argument for the binary

Default: []

--webdriver-binary

WebDriver server binary to use

--webdriver-arg

Extra argument for the WebDriver binary

Default: []

--metadata

Path to root directory containing test metadata

--tests

Path to root directory containing test files

--manifest

Path to test manifest (default is ${metadata_root}/MANIFEST.json)

--run-info

Path to directory containing extra json files to add to run info

--product

Possible choices: android_webview, chrome, chrome_android, chrome_ios, chromium, edge, firefox, firefox_android, headless_shell, safari, sauce, servo, servodriver, opera, webkit, webkitgtk_minibrowser, wpewebkit_minibrowser, wktr, epiphany, ladybird

Browser against which to run tests

--browser-version

Informative string detailing the browser release version. This is included in the run_info data.

--browser-channel

Informative string detailing the browser release channel. This is included in the run_info data.

--config

Path to config file

--install-fonts

Install additional system fonts on your system

--no-install-fonts

Do not install additional system fonts on your system

Default: True

--font-dir

Path to local font installation directory

--inject-script

Path to script file to inject, useful for testing polyfills.

--headless

Run browser in headless mode

--no-headless

Don’t run browser in headless mode

Default: True

--instrument-to-file

Path to write instrumentation logs to

--suppress-handler-traceback

Don’t write the stacktrace for exceptions in server handlers

--no-suppress-handler-traceback

Write the stacktrace for exceptions in server handlers

Default: True

--ws-extra

Extra paths containing websockets handlers

Test Chunking

--total-chunks

Total number of chunks to use

Default: 1

--this-chunk

Chunk number to run

Default: 1

--chunk-type

Possible choices: none, hash, id_hash, dir_hash

Chunking type to use

SSL/TLS

--ssl-type

Possible choices: openssl, pregenerated, none

Type of ssl support to enable (running without ssl may lead to spurious errors)

--openssl-binary

Path to openssl binary

Default: “openssl”

--certutil-binary

Path to certutil binary for use with Firefox + ssl

--ca-cert-path

Path to ca certificate when using pregenerated ssl certificates

--host-key-path

Path to host private key when using pregenerated ssl certificates

--host-cert-path

Path to host certificate when using pregenerated ssl certificates

Gecko-specific

--prefs-root

Path to the folder containing browser prefs

--preload-browser

Preload a gecko instance for faster restarts

--no-preload-browser

Don’t preload a gecko instance for faster restarts

--disable-e10s

Run tests without electrolysis preferences

Default: True

--disable-fission

Disable fission in Gecko.

Default: False

--stackfix-dir

Path to directory containing assertion stack fixing scripts

--specialpowers-path

Path to specialPowers extension xpi file

--setpref

Defines an extra user preference (overrides those in prefs_root)

Default: []

--reftest-internal

Enable reftest runner implemented inside Marionette

--reftest-external

Disable reftest runner implemented inside Marionette

Default: True

--reftest-screenshot

Possible choices: always, fail, unexpected

With –reftest-internal, when to take a screenshot

--chaos

Enable chaos mode with the specified feature flag (see http://searchfox.org/mozilla-central/source/mfbt/ChaosMode.h for details). If no value is supplied, all features are activated

GeckoView-specific

--setenv

Set target environment variable, like FOO=BAR

Default: []

Servo-specific

--user-stylesheet

Inject a user CSS stylesheet into every test.

Default: []

Chrome-specific

--enable-mojojs

Enable MojoJS for testing. Note that this flag is usally enabled automatically by wpt run, if it succeeds in downloading the right version of mojojs.zip or if –mojojs-path is specified.

Default: False

--mojojs-path

Path to mojojs gen/ directory. If it is not specified, wpt run will download and extract mojojs.zip into _venv2/mojojs/gen.

--enable-swiftshader

Enable SwiftShader for CPU-based 3D graphics. This can be used in environments with no hardware GPU available.

Default: False

--enable-experimental

Enable –enable-experimental-web-platform-features flag

--no-enable-experimental

Do not enable –enable-experimental-web-platform-features flag on experimental channels

Default: True

--enable-sanitizer

Only alert on sanitizer-related errors and crashes.

Default: False

--reuse-window

Reuse a window across testharness.js tests where possible, which can speed up testing. Also useful for ensuring that the renderer process has a stable PID for a debugger to attach to.

Default: False

Sauce Labs-specific

--sauce-browser

Sauce Labs browser name

--sauce-platform

Sauce Labs OS platform

--sauce-version

Sauce Labs browser version

--sauce-build

Sauce Labs build identifier

--sauce-tags

Sauce Labs identifying tag

Default: []

--sauce-tunnel-id

Sauce Connect tunnel identifier

--sauce-user

Sauce Labs user name

--sauce-key

Sauce Labs access key

--sauce-connect-binary

Path to Sauce Connect binary

--sauce-init-timeout

Number of seconds to wait for Sauce Connect tunnel to be available before aborting

Default: 30

--sauce-connect-arg

Command-line argument to forward to the Sauce Connect binary (repeatable)

Default: []

Taskcluster-specific

--github-checks-text-file

Path to GitHub checks output file

WebKit-specific

--webkit-port

WebKit port

Safari-specific

--kill-safari

Kill Safari when stopping the browser

Default: False

Output Logging

Each option represents a possible logging format and takes a filename to write that format to, or ‘-’ to write to stdout. Some options are provided by the mozlog utility; see https://firefox-source-docs.mozilla.org/mozbase/mozlog.html for extended documentation.

--log-raw

Raw structured log messages (provided by mozlog)

--log-unittest

Unittest style output (provided by mozlog)

--log-xunit

xUnit compatible XML (provided by mozlog)

--log-html

HTML report (provided by mozlog)

--log-mach

Human-readable output (provided by mozlog)

--log-tbpl

TBPL style log format (provided by mozlog)

--log-grouped

Grouped summary of test results (provided by mozlog)

--log-chromium

Chromium Layout Tests format

--log-wptreport

wptreport format

--log-wptscreenshot

wpt.fyi screenshots

--log-raw-level

A least log level to subscribe to for the given formatter (debug, info, error, etc.)

--log-mach-verbose

Enables verbose mode for the given formatter.

--log-mach-level

A least log level to subscribe to for the given formatter (debug, info, error, etc.)

--log-mach-buffer

If specified, enables message buffering at the given buffer size limit.

--log-mach-screenshot

Enable logging reftest-analyzer compatible screenshot data.

--log-mach-no-screenshot

Disable logging reftest-analyzer compatible screenshot data.

--log-tbpl-compact

Enables compact mode for the given formatter.

--log-tbpl-level

A least log level to subscribe to for the given formatter (debug, info, error, etc.)

--log-tbpl-buffer

If specified, enables message buffering at the given buffer size limit.

--log-wptscreenshot-api

Cache API (default: https://wpt.fyi/api/screenshots/hashes)

create

Create a new wpt test

wpt create [-h] [--no-editor] [-e EDITOR] [--long-timeout] [--overwrite] [-r]
           [-m REF] [--mismatch] [--wait] [--tests-root TESTS_ROOT]
           path

Positional Arguments

path

Path to the test file

Named Arguments

--no-editor

Don’t try to open the test in an editor

Default: False

-e, --editor

Editor to use

--long-timeout

Test should be given a long timeout (typically 60s rather than 10s, but varies depending on environment)

Default: False

--overwrite

Allow overwriting an existing test file

Default: False

-r, --reftest

Create a reftest rather than a testharness (js) test

Default: False

-m, --reference

Path to the reference file

--mismatch

Create a mismatch reftest

Default: False

--wait

Create a reftest that waits until takeScreenshot() is called

Default: False

--tests-root

Path to the root of the wpt directory

Default: “/home/runner/work/wpt/wpt/tools/wpt/../..”

update-expectations

Update expectations files from raw logs.

wpt update-expectations [-h] [--config CONFIG] [--metadata METADATA_ROOT]
                        [--tests TESTS_ROOT] [--manifest MANIFEST_PATH]
                        [--full]
                        [--disable-intermittent [DISABLE_INTERMITTENT]]
                        [--update-intermittent] [--remove-intermittent]
                        [--no-remove-obsolete]
                        [--properties-file PROPERTIES_FILE]
                        [--no-properties-file]
                        [--extra-property EXTRA_PROPERTY] [--log-raw LOG_RAW]
                        [--log-unittest LOG_UNITTEST] [--log-xunit LOG_XUNIT]
                        [--log-html LOG_HTML] [--log-mach LOG_MACH]
                        [--log-tbpl LOG_TBPL] [--log-grouped LOG_GROUPED]
                        [--log-chromium LOG_CHROMIUM]
                        [--log-wptreport LOG_WPTREPORT]
                        [--log-wptscreenshot LOG_WPTSCREENSHOT]
                        [--log-raw-level LOG_RAW_LEVEL] [--log-mach-verbose]
                        [--log-mach-level LOG_MACH_LEVEL]
                        [--log-mach-buffer LOG_MACH_BUFFER]
                        [--log-mach-screenshot] [--log-mach-no-screenshot]
                        [--log-tbpl-compact] [--log-tbpl-level LOG_TBPL_LEVEL]
                        [--log-tbpl-buffer LOG_TBPL_BUFFER]
                        [--log-wptscreenshot-api LOG_WPTSCREENSHOT_API]
                        [run_log ...]

Positional Arguments

run_log

Log file from run of tests

Named Arguments

--config

Path to config file

--metadata

Path to the folder containing test metadata

--tests

Path to web-platform-tests

--manifest

Path to test manifest (default is ${metadata_root}/MANIFEST.json)

--full

For all tests that are updated, remove any existing conditions and missing subtests

Default: False

--disable-intermittent

Reason for disabling tests. When updating test results, disable tests that have inconsistent results across many runs with the given reason.

--update-intermittent

Update test metadata with expected intermittent statuses.

Default: False

--remove-intermittent

Remove obsolete intermittent statuses from expected statuses.

Default: False

--no-remove-obsolete

Don’t remove metadata files that no longer correspond to a test file

Default: True

--properties-file
Path to a JSON file containing run_info properties to use in update. This must be of the form

{“properties”: [<name>], “dependents”: {<property name>: [<name>]}}

--no-properties-file

Don’t use the default properties file at ${metadata_root}/update_properties.json, even if it exists.

Default: False

--extra-property

Extra property from run_info.json to use in metadata update.

Default: []

Output Logging

Each option represents a possible logging format and takes a filename to write that format to, or ‘-’ to write to stdout. Some options are provided by the mozlog utility; see https://firefox-source-docs.mozilla.org/mozbase/mozlog.html for extended documentation.

--log-raw

Raw structured log messages (provided by mozlog)

--log-unittest

Unittest style output (provided by mozlog)

--log-xunit

xUnit compatible XML (provided by mozlog)

--log-html

HTML report (provided by mozlog)

--log-mach

Human-readable output (provided by mozlog)

--log-tbpl

TBPL style log format (provided by mozlog)

--log-grouped

Grouped summary of test results (provided by mozlog)

--log-chromium

Chromium Layout Tests format

--log-wptreport

wptreport format

--log-wptscreenshot

wpt.fyi screenshots

--log-raw-level

A least log level to subscribe to for the given formatter (debug, info, error, etc.)

--log-mach-verbose

Enables verbose mode for the given formatter.

--log-mach-level

A least log level to subscribe to for the given formatter (debug, info, error, etc.)

--log-mach-buffer

If specified, enables message buffering at the given buffer size limit.

--log-mach-screenshot

Enable logging reftest-analyzer compatible screenshot data.

--log-mach-no-screenshot

Disable logging reftest-analyzer compatible screenshot data.

--log-tbpl-compact

Enables compact mode for the given formatter.

--log-tbpl-level

A least log level to subscribe to for the given formatter (debug, info, error, etc.)

--log-tbpl-buffer

If specified, enables message buffering at the given buffer size limit.

--log-wptscreenshot-api

Cache API (default: https://wpt.fyi/api/screenshots/hashes)

files-changed

Get a list of files that have changed

wpt files-changed [-h] [--ignore-rule IGNORE_RULE] [--modified] [--new]
                  [--show-type] [--null]
                  [revish]

Positional Arguments

revish

Commits to consider. Defaults to the commits on the current branch

Named Arguments

--ignore-rule

Override the rules for paths to exclude from lists of changes. Rules are paths relative to the test root, with * before a separator or the end matching anything other than a path separator and ** in that position matching anything. This flag can be used multiple times for multiple rules. Specifying this flag overrides the default: resources/testharness*, resources/testdriver*

--modified

Include files under version control that have been modified or staged

Default: False

--new

Include files in the worktree that are not in version control

Default: False

--show-type

Print the test type along with each affected test

Default: False

--null

Separate items with a null byte

Default: False

tests-affected

Get a list of tests affected by changes

wpt tests-affected [-h] [--ignore-rule IGNORE_RULE] [--modified] [--new]
                   [--show-type] [--null] [--metadata METADATA_ROOT]
                   [revish]

Positional Arguments

revish

Commits to consider. Defaults to the commits on the current branch

Named Arguments

--ignore-rule

Override the rules for paths to exclude from lists of changes. Rules are paths relative to the test root, with * before a separator or the end matching anything other than a path separator and ** in that position matching anything. This flag can be used multiple times for multiple rules. Specifying this flag overrides the default: resources/testharness*, resources/testdriver*

--modified

Include files under version control that have been modified or staged

Default: False

--new

Include files in the worktree that are not in version control

Default: False

--show-type

Print the test type along with each affected test

Default: False

--null

Separate items with a null byte

Default: False

--metadata

Directory that will contain MANIFEST.json

Default: “/home/runner/work/wpt/wpt”

install

Install browser components

wpt install [-h]
            [--channel {stable,release,beta,dev,canary,nightly,preview,experimental}]
            [--download-only] [--rename RENAME] [-d DESTINATION]
            [--revision REVISION]
            {firefox,chrome,chromium,servo,safari,wktr} {browser,webdriver}

Positional Arguments

browser

Possible choices: firefox, chrome, chromium, servo, safari, wktr

name of web browser product

component

Possible choices: browser, webdriver

name of component

Named Arguments

--channel

Possible choices: stable, release, beta, dev, canary, nightly, preview, experimental

Name of browser release channel (default: nightly). “stable” and “release” are synonyms for the latest browser stable release; “beta” is the beta release; “dev” is only meaningful for Chrome (i.e. Chrome Dev); “nightly”, “experimental”, and “preview” are all synonyms for the latest available development or trunk release. (For WebDriver installs, we attempt to select an appropriate, compatible version for the latest browser release on the selected channel.) This flag overrides –browser-channel.

Default: “nightly”

--download-only

Download the selected component but don’t install it

Default: False

--rename

Filename, excluding extension for downloaded archive (only with –download-only)

-d, --destination

filesystem directory to place the component

--revision

Chromium revision to install from snapshots

rev-list

List tagged revisions at regular intervals

wpt rev-list [-h] [--epoch EPOCH] [--max-count MAX_COUNT]

Named Arguments

--epoch

regular interval of time selected to get the tagged revisions. Valid values are digits followed by h/d/w (e.x. 9h, 9d, 9w …) where the mimimun selectable interval is one hour (1h)

Default: 1d

--max-count

maximum number of revisions to be returned by the command

Default: 1

install-android-emulator

Setup the x86 android emulator

wpt install-android-emulator [-h] [--path DEST] [--reinstall] [--prompt]
                             [--no-prompt]

Named Arguments

--path

Root path to use for emulator tooling

--reinstall

Force reinstall even if the emulator already exists

Default: False

--prompt

Enable confirmation prompts

Default: False

--no-prompt

Skip confirmation prompts

Default: True

start-android-emulator

Start the x86 android emulator

wpt start-android-emulator [-h] [--path DEST] [--reinstall] [--prompt]
                           [--no-prompt] [--device-serial DEVICE_SERIAL]

Named Arguments

--path

Root path to use for emulator tooling

--reinstall

Force reinstall even if the emulator already exists

Default: False

--prompt

Enable confirmation prompts

Default: False

--no-prompt

Skip confirmation prompts

Default: True

--device-serial

Device serial number for Android emulator, if not emulator-5554

web-features-manifest

Create the WEB_FEATURES_MANIFEST.json

wpt web-features-manifest [-h] [-p PATH]

Named Arguments

-p, --path

Path to manifest file.