foolip | eda32ab | 2017-02-16 19:21:58 | [diff] [blame] | 1 | # web-platform-tests |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 2 | |
rbyers | 6299b913 | 2017-02-10 18:06:57 | [diff] [blame] | 3 | Interoperability between browsers is |
qyearsley | 9c9781a | 2017-02-11 00:08:39 | [diff] [blame] | 4 | [critical](https://www.chromium.org/blink/platform-predictability) to Chromium's |
| 5 | mission of improving the web. We believe that leveraging and contributing to a |
| 6 | shared test suite is one of the most important tools in achieving |
| 7 | interoperability between browsers. The [web-platform-tests |
Philip Jägenstedt | 3a3d5b8 | 2018-05-31 15:25:35 | [diff] [blame] | 8 | repository](https://github.com/web-platform-tests/wpt) is the primary shared |
Quinten Yearsley | fab627a | 2017-03-29 22:30:18 | [diff] [blame] | 9 | test suite where all browser engines are collaborating. |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 10 | |
Jeff Carpenter | abd1360 | 2017-03-29 22:49:59 | [diff] [blame] | 11 | Chromium has a 2-way import/export process with the upstream web-platform-tests |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 12 | repository, where tests are imported into |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 13 | [web_tests/external/wpt](../../third_party/blink/web_tests/external/wpt) |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 14 | and any changes to the imported tests are also exported to web-platform-tests. |
| 15 | |
Philip Jägenstedt | 3a3d5b8 | 2018-05-31 15:25:35 | [diff] [blame] | 16 | See https://web-platform-tests.org/ for general documentation on |
foolip | eda32ab | 2017-02-16 19:21:58 | [diff] [blame] | 17 | web-platform-tests, including tips for writing and reviewing tests. |
| 18 | |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 19 | [TOC] |
| 20 | |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 21 | ## Importing tests |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 22 | |
Jeff Carpenter | d66c689 | 2017-11-03 00:13:53 | [diff] [blame] | 23 | Chromium has a [mirror](https://chromium.googlesource.com/external/w3c/web-platform-tests/) |
| 24 | of the GitHub repo and periodically imports a subset of the tests to |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 25 | run as part of the regular Blink web test testing process. |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 26 | |
raphael.kubo.da.costa | 21ed71a | 2017-04-12 10:50:44 | [diff] [blame] | 27 | The goals of this process are to be able to run web-platform-tests unmodified |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 28 | locally just as easily as we can run the Blink tests, and ensure that we are |
foolip | eda32ab | 2017-02-16 19:21:58 | [diff] [blame] | 29 | tracking tip-of-tree in the web-platform-tests repository as closely as |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 30 | possible, and running as many of the tests as possible. |
| 31 | |
| 32 | ### Automatic import process |
| 33 | |
foolip | eda32ab | 2017-02-16 19:21:58 | [diff] [blame] | 34 | There is an automatic process for updating the Chromium copy of |
Quinten Yearsley | fab627a | 2017-03-29 22:30:18 | [diff] [blame] | 35 | web-platform-tests. The import is done by the builder [wpt-importer |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 36 | builder][wpt-importer]. |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 37 | |
| 38 | The easiest way to check the status of recent imports is to look at: |
| 39 | |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 40 | - Recent logs on LUCI for [wpt-importer builder][wpt-importer] |
| 41 | - Recent CLs created by [WPT |
| 42 | Autoroller](https://chromium-review.googlesource.com/q/owner:wpt-autoroller%2540chops-service-accounts.iam.gserviceaccount.com). |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 43 | |
Quinten Yearsley | 95fa323 | 2017-08-18 16:10:55 | [diff] [blame] | 44 | The import jobs will generally be green if either there was nothing to do, |
| 45 | or a CL was successfully submitted. |
| 46 | |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 47 | For maintainers: |
| 48 | |
| 49 | - The source lives in |
| 50 | [third_party/blink/tools/wpt_import.py](../../third_party/blink/tools/wpt_import.py). |
| 51 | - If the importer starts misbehaving, it could be disabled by turning off the |
| 52 | auto-import mode by landing [this CL](https://crrev.com/c/617479/). |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 53 | |
Quinten Yearsley | 12a15b7 | 2017-06-05 21:51:23 | [diff] [blame] | 54 | ### Failures caused by automatic imports. |
| 55 | |
| 56 | If there are new test failures that start after an auto-import, |
| 57 | there are several possible causes, including: |
| 58 | |
| 59 | 1. New baselines for flaky tests were added (http://crbug.com/701234). |
| 60 | 2. Modified tests should have new results for non-Release builds but they weren't added (http://crbug.com/725160). |
| 61 | 3. New baselines were added for tests with non-deterministic test results (http://crbug.com/705125). |
| 62 | |
| 63 | Because these tests are imported from the Web Platform tests, it is better |
| 64 | to have them in the repository (and marked failing) than not, so prefer to |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 65 | [add test expectations](web_test_expectations.md) rather than reverting. |
Quinten Yearsley | 12a15b7 | 2017-06-05 21:51:23 | [diff] [blame] | 66 | However, if a huge number of tests are failing, please revert the CL so we |
| 67 | can fix it manually. |
| 68 | |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 69 | [wpt-importer]: https://ci.chromium.org/p/infra/builders/luci.infra.cron/wpt-importer |
| 70 | |
Jeff Carpenter | abd1360 | 2017-03-29 22:49:59 | [diff] [blame] | 71 | ### Automatic export process |
| 72 | |
Jeff Carpenter | 4562d24 | 2017-07-14 22:10:43 | [diff] [blame] | 73 | If you upload a CL with any changes in |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 74 | [third_party/blink/web_tests/external/wpt](../../third_party/blink/web_tests/external/wpt), |
Jeff Carpenter | 4562d24 | 2017-07-14 22:10:43 | [diff] [blame] | 75 | once you add reviewers the exporter will create a provisional pull request with |
Philip Jägenstedt | 3a3d5b8 | 2018-05-31 15:25:35 | [diff] [blame] | 76 | those changes in the [upstream WPT GitHub repository](https://github.com/web-platform-tests/wpt/). |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 77 | The exporter runs on [wpt-exporter builder][wpt-exporter]. |
Jeff Carpenter | abd1360 | 2017-03-29 22:49:59 | [diff] [blame] | 78 | |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 79 | Once you're ready to land your CL, please follow the link posted by the bot and |
| 80 | check the status of the required checks of the GitHub PR. If it's green, go |
| 81 | ahead landing your CL and the exporter will automatically merge the PR. |
Jeff Carpenter | 4562d24 | 2017-07-14 22:10:43 | [diff] [blame] | 82 | |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 83 | If GitHub status is red on the PR, please try to resolve the failures before |
| 84 | merging. If you run into any issues, or if you have a CL with WPT changes that |
Jeff Carpenter | 4562d24 | 2017-07-14 22:10:43 | [diff] [blame] | 85 | the exporter did not pick up, please reach out to [email protected]. |
| 86 | |
| 87 | Additional things to note: |
| 88 | |
| 89 | - CLs that change over 1000 files will not be exported. |
| 90 | - All PRs use the |
Philip Jägenstedt | 3a3d5b8 | 2018-05-31 15:25:35 | [diff] [blame] | 91 | [`chromium-export`](https://github.com/web-platform-tests/wpt/pulls?utf8=%E2%9C%93&q=is%3Apr%20label%3Achromium-export) label. |
Jeff Carpenter | 4562d24 | 2017-07-14 22:10:43 | [diff] [blame] | 92 | - All PRs for CLs that haven't yet been landed in Chromium also use the |
Philip Jägenstedt | 3a3d5b8 | 2018-05-31 15:25:35 | [diff] [blame] | 93 | [`do not merge yet`](https://github.com/web-platform-tests/wpt/pulls?q=is%3Apr+is%3Aopen+label%3A%22do+not+merge+yet%22) label. |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 94 | - The exporter cannot create upstream PRs for in-flight CLs with binary files |
| 95 | (e.g. webm files). An export PR will still be made after the CL lands. |
Jeff Carpenter | 4562d24 | 2017-07-14 22:10:43 | [diff] [blame] | 96 | |
| 97 | For maintainers: |
| 98 | |
Jeff Carpenter | 4562d24 | 2017-07-14 22:10:43 | [diff] [blame] | 99 | - The source lives in |
Kent Tamura | 5e69e91 | 2018-05-02 13:05:00 | [diff] [blame] | 100 | [third_party/blink/tools/wpt_export.py](../../third_party/blink/tools/wpt_export.py). |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 101 | - If the exporter starts misbehaving (for example, creating the same PR over |
| 102 | and over again), put it in "dry run" mode by landing [this CL](https://crrev.com/c/462381/). |
Jeff Carpenter | abd1360 | 2017-03-29 22:49:59 | [diff] [blame] | 103 | |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 104 | [wpt-exporter]: https://ci.chromium.org/p/infra/builders/luci.infra.cron/wpt-exporter |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 105 | |
Raphael Kubo da Costa | c089b56 | 2018-02-26 13:20:09 | [diff] [blame] | 106 | ### GitHub credentials |
| 107 | |
| 108 | When manually running the `wpt-import` and `wpt-export` scripts, several |
| 109 | requests are made to GitHub to query the status of pull requests, look for |
| 110 | existing exported commits etc. GitHub has a [fairly |
| 111 | low](https://developer.github.com/v3/#rate-limiting) request limit for |
| 112 | unauthenticated requests, so it is recommended that you let `wpt-export` and |
| 113 | `wpt-import` use your GitHub credentials when sending requests: |
| 114 | |
| 115 | 1. Generate a new [personal access token](https://github.com/settings/tokens) |
Raphael Kubo da Costa | ac0fd25 | 2018-02-26 16:50:29 | [diff] [blame] | 116 | 1. Set up your credentials by either: |
| 117 | * Setting the `GH_USER` environment variable to your GitHub user name |
| 118 | and the `GH_TOKEN` environment variable to the access token you have |
| 119 | just created **or** |
| 120 | * Creating a JSON file with two keys: `GH_USER`, your GitHub user name, |
| 121 | and `GH_TOKEN`, the access token you have just generated. After that, |
| 122 | pass `--credentials-json <path-to-json>` to `wpt-export` and |
| 123 | `wpt-import`. |
Raphael Kubo da Costa | c089b56 | 2018-02-26 13:20:09 | [diff] [blame] | 124 | |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 125 | ### Manual import |
| 126 | |
| 127 | To pull the latest versions of the tests that are currently being imported, you |
| 128 | can also directly invoke the |
Kent Tamura | 5e69e91 | 2018-05-02 13:05:00 | [diff] [blame] | 129 | [wpt-import](../../third_party/blink/tools/wpt_import.py) script. |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 130 | |
| 131 | That script will pull the latest version of the tests from our mirrors of the |
| 132 | upstream repositories. If any new versions of tests are found, they will be |
| 133 | committed locally to your local repository. You may then upload the changes. |
| 134 | |
Raphael Kubo da Costa | c089b56 | 2018-02-26 13:20:09 | [diff] [blame] | 135 | Remember your import might fail due to GitHub's limit for unauthenticated |
| 136 | requests, so consider [passing your GitHub credentials](#GitHub-credentials) to |
| 137 | the script. |
| 138 | |
Robert Ma | c31beae | 2019-04-30 14:46:46 | [diff] [blame] | 139 | ### Skipped tests |
| 140 | |
| 141 | We control which tests are imported via a file called |
| 142 | [W3CImportExpectations](../../third_party/blink/web_tests/W3CImportExpectations), |
| 143 | which has a list of directories to skip while importing. |
| 144 | |
| 145 | In addition to the directories and tests explicitly skipped there, tests may |
| 146 | also be skipped for a couple other reasons, e.g. if the file path is too long |
| 147 | for Windows. To check what files are skipped in import, check the recent logs |
| 148 | for [wpt-importer builder][wpt-importer]. |
| 149 | |
qyearsley | 9c9781a | 2017-02-11 00:08:39 | [diff] [blame] | 150 | ### Enabling import for a new directory |
| 151 | |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 152 | If you wish to add more tests (by un-skipping some of the directories currently |
| 153 | skipped in `W3CImportExpectations`), you can modify that file locally and commit |
qyearsley | 9c9781a | 2017-02-11 00:08:39 | [diff] [blame] | 154 | it, and on the next auto-import, the new tests should be imported. |
| 155 | |
| 156 | If you want to import immediately (in order to try the tests out locally, etc) |
Raphael Kubo da Costa | c089b56 | 2018-02-26 13:20:09 | [diff] [blame] | 157 | you can also run `wpt-import`, but this is not required. |
| 158 | |
| 159 | Remember your import might fail due to GitHub's limit for unauthenticated |
| 160 | requests, so consider [passing your GitHub credentials](#GitHub-credentials) to |
| 161 | the script. |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 162 | |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 163 | ## Writing tests |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 164 | |
foolip | eda32ab | 2017-02-16 19:21:58 | [diff] [blame] | 165 | To contribute changes to web-platform-tests, just commit your changes directly |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 166 | to [web_tests/external/wpt](../../third_party/blink/web_tests/external/wpt) |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 167 | and the changes will be automatically upstreamed within 24 hours. |
| 168 | |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 169 | Changes involving adding, removing or modifying tests can all be upstreamed. |
| 170 | Any changes outside of |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 171 | [external/wpt](../../third_party/blink/web_tests/external/wpt) will not be |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 172 | upstreamed, and any changes `*-expected.txt`, `OWNERS`, and `MANIFEST.json`, |
| 173 | will also not be upstreamed. |
rbyers | 6299b913 | 2017-02-10 18:06:57 | [diff] [blame] | 174 | |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 175 | Running the web tests will automatically regenerate MANIFEST.json to pick up |
Jeff Carpenter | eb1ff6b | 2017-03-02 23:21:58 | [diff] [blame] | 176 | any local modifications. |
foolip | 2f19855 | 2017-02-24 16:42:35 | [diff] [blame] | 177 | |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 178 | Most tests are written using testharness.js, see |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 179 | [Writing Web Tests](./writing_web_tests.md) and |
| 180 | [Web Tests Tips](./web_tests_tips.md) for general guidelines. |
qyearsley | 9c9781a | 2017-02-11 00:08:39 | [diff] [blame] | 181 | |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 182 | ### Write tests against specifications |
| 183 | |
foolip | eda32ab | 2017-02-16 19:21:58 | [diff] [blame] | 184 | Tests in web-platform-tests are expected to match behavior defined by the |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 185 | relevant specification. In other words, all assertions that a test makes |
| 186 | should be derived from a specification's normative requirements, and not go |
| 187 | beyond them. It is often necessary to change the specification to clarify what |
| 188 | is and isn't required. |
| 189 | |
Philip Jägenstedt | 8bb32fa | 2018-01-27 14:39:26 | [diff] [blame] | 190 | When implementation experience is needed to inform the specification work, |
Philip Jägenstedt | 3a3d5b8 | 2018-05-31 15:25:35 | [diff] [blame] | 191 | [tentative tests](https://web-platform-tests.org/writing-tests/file-names.html) |
Philip Jägenstedt | 8bb32fa | 2018-01-27 14:39:26 | [diff] [blame] | 192 | can be appropriate. It should be apparent in context why the test is tentative |
| 193 | and what needs to be resolved to make it non-tentative. |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 194 | |
| 195 | ### Tests that require testing APIs |
| 196 | |
Philip Jägenstedt | 3a3d5b8 | 2018-05-31 15:25:35 | [diff] [blame] | 197 | [testdriver.js](https://web-platform-tests.org/writing-tests/testdriver.html) |
Philip Jägenstedt | 8bb32fa | 2018-01-27 14:39:26 | [diff] [blame] | 198 | provides a means to automate tests that cannot be written purely using web |
| 199 | platform APIs, similar to `internals.*` and `eventSender.*` in regular Blink |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 200 | web tests. |
Philip Jägenstedt | 8bb32fa | 2018-01-27 14:39:26 | [diff] [blame] | 201 | |
| 202 | If no testdriver.js API exists, check if it's a |
Philip Jägenstedt | 3a3d5b8 | 2018-05-31 15:25:35 | [diff] [blame] | 203 | [known issue](https://github.com/web-platform-tests/wpt/labels/testdriver.js) |
Philip Jägenstedt | 8bb32fa | 2018-01-27 14:39:26 | [diff] [blame] | 204 | and otherwise consider filing a new issue. |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 205 | |
| 206 | An alternative is to write manual tests that are automated with scripts from |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 207 | [wpt_automation](../../third_party/blink/web_tests/external/wpt_automation). |
Quinten Yearsley | e577029f | 2017-07-06 00:21:03 | [diff] [blame] | 208 | Injection of JS in manual tests is determined by `loadAutomationScript` in |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 209 | [testharnessreport.js](../../third_party/blink/web_tests/resources/testharnessreport.js). |
Quinten Yearsley | e577029f | 2017-07-06 00:21:03 | [diff] [blame] | 210 | |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 211 | Such tests still require case-by-case automation to run for other browser |
| 212 | engines, but are more valuable than purely manual tests. |
| 213 | |
Quinten Yearsley | e577029f | 2017-07-06 00:21:03 | [diff] [blame] | 214 | Manual tests that have no automation are still imported, but skipped in |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 215 | [NeverFixTests](../../third_party/blink/web_tests/NeverFixTests); see |
Quinten Yearsley | e577029f | 2017-07-06 00:21:03 | [diff] [blame] | 216 | [issue 738489](https://crbug.com/738489). |
| 217 | |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 218 | ### Adding new top-level directories |
qyearsley | 9c9781a | 2017-02-11 00:08:39 | [diff] [blame] | 219 | |
| 220 | Entirely new top-level directories should generally be added upstream, since |
| 221 | that's the only way to add an OWNERS file upstream. After adding a new top-level |
| 222 | directory upstream, you should add a line for it in `W3CImportExpectations`. |
| 223 | |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 224 | Adding the new directory (and `W3CImportExpectations` entry) in Chromium and |
| 225 | later adding an OWNERS file upstream also works. |
| 226 | |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 227 | ### Will the exported commits be linked to my GitHub profile? |
| 228 | |
| 229 | The email you commit with in Chromium will be the author of the commit on |
| 230 | GitHub. You can [add it as a secondary address on your GitHub |
| 231 | account](https://help.github.com/articles/adding-an-email-address-to-your-github-account/) |
| 232 | to link your exported commits to your GitHub profile. |
| 233 | |
Philip Jägenstedt | f7e99cf | 2018-01-22 15:54:29 | [diff] [blame] | 234 | If you are a Googler, you can also register your GitHub account at go/github, |
| 235 | making it easier for other Googlers to find you. |
| 236 | |
qyearsley | 4f0acca4 | 2017-01-30 08:18:43 | [diff] [blame] | 237 | ### What if there are conflicts? |
| 238 | |
| 239 | This cannot be avoided entirely as the two repositories are independent, but |
| 240 | should be rare with frequent imports and exports. When it does happen, manual |
| 241 | intervention will be needed and in non-trivial cases you may be asked to help |
| 242 | resolve the conflict. |
| 243 | |
| 244 | ### Direct pull requests |
| 245 | |
foolip | eda32ab | 2017-02-16 19:21:58 | [diff] [blame] | 246 | It's still possible to make direct pull requests to web-platform-tests, see |
Philip Jägenstedt | 3a3d5b8 | 2018-05-31 15:25:35 | [diff] [blame] | 247 | https://web-platform-tests.org/appendix/github-intro.html. |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 248 | |
Jeff Carpenter | 11b548b | 2017-11-03 23:05:22 | [diff] [blame] | 249 | ## Running tests |
| 250 | |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 251 | Same as Blink web tests, you can use |
| 252 | [`run_web_tests.py`](web_tests.md#running-the-tests) to run any WPT test. |
Jeff Carpenter | 11b548b | 2017-11-03 23:05:22 | [diff] [blame] | 253 | |
| 254 | One thing to note is that glob patterns for WPT tests are not yet supported. |
| 255 | |
Xianzhu Wang | 0a37e9d | 2019-03-27 21:27:29 | [diff] [blame] | 256 | See [Running WPT tests in Content Shell](web_tests_in_content_shell.md#Running-WPT-Tests-in-Content-Shell) |
| 257 | for debugging etc. |
| 258 | |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 259 | ## Reviewing tests |
| 260 | |
| 261 | Anyone who can review code and tests in Chromium can also review changes in |
Kent Tamura | 59ffb02 | 2018-11-27 05:30:56 | [diff] [blame] | 262 | [external/wpt](../../third_party/blink/web_tests/external/wpt) |
foolip | df2a863 | 2017-02-15 15:03:16 | [diff] [blame] | 263 | that will be automatically upstreamed. There will be no additional review in |
| 264 | web-platform-tests as part of the export process. |
| 265 | |
| 266 | If upstream reviewers have feedback on the changes, discuss on the pull request |
| 267 | created during export, and if necessary work on a new pull request to iterate |
| 268 | until everyone is satisfied. |
| 269 | |
| 270 | When reviewing tests, check that they match the relevant specification, which |
| 271 | may not fully match the implementation. See also |
| 272 | [Write tests against specifications](#Write-tests-against-specifications). |