blob: 80697eb1309866e9ce83eacd5c1ad64f9c198722 [file] [log] [blame]
W3C Web Platform Tests in Blink Web Tests
Design Doc: https://goo.gl/iXUaZd
This directory contains checked out and reduced code from web-platform-tests
(https://github.com/web-platform-tests/wpt/) required to run WPT tests as part
of Blink's test infrastructure and some maintenance/configuration code.
The third party code lives entirely in the wpt subdirectory:
tools/blinkpy/third_party/wpt/wpt
For licensing, see README.chromium in parent directory
(tools/blinkpy/third_party/README.chromium).
**
Files in this directory (non third-party)
README.chromium
===============
This file.
wpt.config.json
===============
The configuration file used when running WPTServe. Note that this file loads
after wpt/config.default.json and this configuration gets merged onto it. When
changing the ports (HTTP/S, WS/S), make sure to also:
- update `WPT_HOST_AND_PORTS` in
`//third_party/blink/tools/blinkpy/web_tests/port/driver.py`
- update WebTestContentBrowserClient::GetOriginsRequiringDedicatedProcess()
checkout.sh
===========
Running this script without arguments will remove the existing checkout
(third_party/wpt/wpt) and perform a fresh one. See "Rolling in WPT" for more.
WPTWhiteList
============
The explicit list of files being kept, everything else not on this list is
deleted when running "./checkout.sh reduce". Use this file to control what gets
checked in and try to keep the list as small as possible (use what you need).
certs/
======
This directory contains a private key and a certificate of WPTServe, and files
for self-signed CA. By default, WPTServe generates these files using the
"openssl" command, but we check in pre-generated files to avoid "openssl"
dependency.
These certificates will expire in January 2025. Here is an instruction to
re-generate them:
1. Make sure the following commands are in $PATH.
- base64
- git
- grep
- openssl
- sed
2. Run update_certs.py
3. Look at the "Not After" date in the output of the command, and update
"January 2025" in this document and expiration_date in wptserve.py to new
expiration date.
4. Update certs/127.0.0.1.sxg.*.
Please refer to
third_party/blink/web_tests/http/tests/loading/sxg/resources/README.md
5. git commit
6. git cl upload, etc.
**
Rolling in WPT
When rolling in new versions of WPT support, modify WPT_HEAD in checkout.sh to
the desired HEAD position. You can then call "./checkout.sh clone" which will
pull in all the code.
It is also important to update the hashes in the 'Version:' fields of
tools/blinkpy/third_party/README.chromium.
You can examine what's pulled in and update WPTWhiteList if some new files are
required to run the updated version.
Once you've cloned the repositories you can call "./checkout.sh reduce" to
remove everything that is not listed in WPTWhiteList.
Note that calling "./checkout.sh" without arguments is equivalent of calling
"./checkout.sh clone reduce".
**
Configuration
Read instructions in WPT README:
https://github.com/web-platform-tests/wpt/blob/master/README.md
Also, check out the WPTServe Documentation
(https://wptserve.readthedocs.org/en/latest/).
Note that editing /etc/hosts is not required for run_web_tests.py since
content_shell is invoked with flags to map all *.test domains to 127.0.0.1.
**
Running web-platform-tests with enabled WPTServe on a local machine
WPTServe is now enabled by default in run_web_tests.py for tests that live in
web_tests/external/wpt.
WPTServe starts HTTP/S and WS/S servers as separate processes.
The content_shell used to run the tests will receive the URL of each test
(instead of a filename). The document root http://web-platform.test/ maps to
web_test/external/wpt. HTTPS tests are enabled by default.
Example run:
./tools/run_web_tests.py external/wpt