diff options
author | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
---|---|---|
committer | Matt A. Tobin <mattatobin@localhost.localdomain> | 2018-02-02 04:16:08 -0500 |
commit | 5f8de423f190bbb79a62f804151bc24824fa32d8 (patch) | |
tree | 10027f336435511475e392454359edea8e25895d /testing/web-platform/tests/docs/lint-tool.md | |
parent | 49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff) | |
download | UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip |
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/tests/docs/lint-tool.md')
-rw-r--r-- | testing/web-platform/tests/docs/lint-tool.md | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/testing/web-platform/tests/docs/lint-tool.md b/testing/web-platform/tests/docs/lint-tool.md new file mode 100644 index 000000000..56b2b4896 --- /dev/null +++ b/testing/web-platform/tests/docs/lint-tool.md @@ -0,0 +1,136 @@ +We have a lint tool for catching common mistakes in test files. You can run +it manually by starting the `lint` executable from the root of your local +web-platform-tests working directory like this: + +``` +./lint +``` + +The lint tool is also run automatically for every submitted pull request, +and reviewers will not merge branches with tests that have lint errors, so +you must either [fix all lint errors](#fixing-lint-errors), or you must +[white-list test files] (#updating-the-whitelist) to suppress the errors. + +## Fixing lint errors + +You must fix any errors the lint tool reports, unless an error is for +something essential to a certain test or that for some other exceptional +reason shouldn't prevent the test from being merged. In those cases you can +[white-list test files](#updating-the-whiteslist) to suppress the errors. +Otherwise, use the details in this section to fix all errors reported. + +* **CONSOLE**: Test-file line has a `console.*(...)` call; **fix**: remove + the `console.*(...)` call (and in some cases, consider adding an + `assert_*` of some kind in place of it). + +* **CR AT EOL**: Test-file line ends with CR (U+000D) character; **fix**: + reformat file so each line just has LF (U+000A) line ending (standard, + cross-platform "Unix" line endings instead of, e.g., DOS line endings). + +* **EARLY-TESTHARNESSREPORT**: Test file has an instance of + `<script src='/resources/testharnessreport.js'>` prior to + `<script src='/resources/testharness.js'>`; **fix**: flip the order. + +* **INDENT TABS**: Test-file line starts with one or more tab characters; + **fix**: use spaces to replace any tab characters at beginning of lines. + +* **INVALID-TIMEOUT**: Test file with `<meta name='timeout'...>` element + that has a `content` attribute whose value is not `long`; **fix**: + replace the value of the `content` attribute with `long`. + +* **LATE-TIMEOUT**: Test file with `<meta name="timeout"...>` element after + `<script src='/resources/testharnessreport.js'>` element ; **fix**: move + the `<meta name="timeout"...>` element to precede the `script` element. + +* **MALFORMED-VARIANT**: Test file with a `<meta name='variant'...>` + element whose `content` attribute has a malformed value; **fix**: ensure + the value of the `content` attribute starts with `?` or `#` or is empty. + +* **MISSING-TESTHARNESSREPORT**: Test file is missing an instance of + `<script src='/resources/testharnessreport.js'>`; **fix**: ensure each + test file contains `<script src='/resources/testharnessreport.js'>`. + +* **MULTIPLE-TESTHARNESS**: Test file with multiple instances of + `<script src='/resources/testharness.js'>`; **fix**: ensure each test + has only one `<script src='/resources/testharness.js'>` instance. + +* **MULTIPLE-TESTHARNESSREPORT**: Test file with multiple instances of + `<script src='/resources/testharnessreport.js'>`; **fix**: ensure each test + has only one `<script src='/resources/testharnessreport.js'>` instance. + +* **MULTIPLE-TIMEOUT**: Test file with multiple `<meta name="timeout"...>` + elements; **fix**: ensure each test file has only one instance of a + `<meta name="timeout"...>` element. + +* **PARSE-FAILED**: Test file failed parsing by manifest builder; **fix**: + examine the file to find the causes of any parse errors, and fix them. + +* **PATH LENGTH**: Test file's pathname has a total length greater than 150 + characters; **fix**: use shorter filename to rename the test file. + +* **PRINT STATEMENT**: A server-side python support file contains a `print` + statement; **fix**: remove the `print` statement or replace it with + something else that achieves the intended effect (e.g., a logging call). + +* **SET TIMEOUT**: Test-file line has `setTimeout(...)` call; **fix**: + replace all `setTimeout(...)` calls with `step_timeout(...)` calls. + +* **TRAILING WHITESPACE**: Test-file line has trailing whitespace; **fix**: + remove trailing whitespace from all lines in the file. + +* **VARIANT-MISSING**: Test file with a `<meta name='variant'...>` element + that's missing a `content` attribute; **fix**: add a `content` attribute + with an appropriate value to the `<meta name='variant'...>` element. + +* **W3C-TEST.ORG**: Test-file line has the string `w3c-test.org`; **fix**: + either replace the `w3c-test.org` string with the expression + `{{host}}:{{ports[http][0]}}` or a generic hostname like `example.org`. + +## Updating the whitelist + +Normally you must [fix all lint errors](#fixing-lint-errors). But in the +unusual case of error reports for things essential to certain tests or that +for other exceptional reasons shouldn't prevent a merge of a test, you can +update and commit the `lint.whitelist` file in the web-platform-tests root +directory to suppress errors the lint tool would report for a test file. + +To add a test file or directory to the whitelist, use the following format: + +``` +ERROR TYPE:file/name/pattern +``` + +For example, to whitelist the file `example/file.html` such that all +`TRAILING WHITESPACE` errors the lint tool would report for it are +suppressed, add the following line to the `lint.whitelist` file. + +``` +TRAILING WHITESPACE:example/file.html +``` + +To whitelist an entire directory rather than just one file, use the `*` +wildcard. For example, to whitelist the `example` directory such that all +`TRAILING WHITESPACE` errors the lint tool would report for any files in it +are suppressed, add the following line to the `lint.whitelist` file. + +``` +TRAILING WHITESPACE:example/* +``` + +If needed, you can also use the `*` wildcard to express other filename +patterns or directory-name patterns (just as you would when, e.g., +executing shell commands from the command line). + +Finally, to whitelist just one line in a file, use the following format: + +``` +ERROR TYPE:file/name/pattern:line_number +``` + +For example, to whitelist just line 128 of the file `example/file.html` +such that any `TRAILING WHITESPACE` error the lint tool would report for +that line is suppressed, add the following to the `lint.whitelist` file. + +``` +TRAILING WHITESPACE:example/file.html:128 +``` |