| # crashtest tests |
| |
| Crash tests are used to ensure that a document can be loaded without |
| crashing or experiencing other low-level issues that may be checked by |
| implementation-specific tooling (e.g. leaks, asserts, or sanitizer |
| failures). |
| |
| Crashtests are identified by the string `-crash` in the filename immediately |
| before the extension, or by being in a directory called `crashtests`. Examples: |
| |
| - `css/css-foo/bar-crash.html` is a crash test |
| - `css/css-foo/crashtests/bar.html` is a crash test |
| - `css/css-foo/bar-crash-001.html` is **not** a crash test |
| |
| The simplest crashtest is a single HTML file with any content. The |
| test passes if the load event is reached, and the browser finishes |
| painting, without terminating. |
| |
| In some cases crashtests may need to perform work after the initial page load. |
| In this case the test may specify a `class=test-wait` attribute on the root |
| element. The test will not complete until that attribute is removed from the |
| root. At the time when the test would otherwise have ended a `TestRendered` |
| event is emitted; test authors can use this event to perform modifications that |
| are guaranteed not to be batched with the initial paint. This matches the |
| behaviour of [reftests](reftests). |
| |
| Note that crash tests **do not** need to include `testharness.js` or use any of |
| the [testharness API](testharness-api.md) (e.g. they do not need to declare a |
| `test(..)`). |