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.

Note that crash tests do not need to include testharness.js or use any of the testharness API (e.g. they do not need to declare a test(..)).