Easy import (and re-import) of available test suites on the web, in particular W3C CSS and WPT test-suites.

Importing new tests

  1. Update LayoutTests/imported/w3c/resources/ImportExpectations to activate the import of selected tests
  2. Run Tools/Scripts/import-w3c-tests as is, or Tools/Scripts/import-w3c-tests -t web-platform-tests/XXselected-testsXX to have a faster import
  3. Run rwt (Tools/Scripts/run-webkit-tests) to generate the new expectations on LayoutTests/imported/w3c/web-platform-tests/XXselected-testsXX
  4. Update if needed the list of imported files that should be marked as [ Skip ] in LayoutTests/TestExpectations
    • Tools/Scripts/import-w3c-tests will display in the console this to-be-skipped list of files

The import-w3c-tests is doing the following things:

  1. Clone the test repositories (as defined in LayoutTests/imported/w3c/resources/TestRepositories)
  2. Checkout a specific revision
    • It is important to keep the same revision for consistency
  3. Import tests
    • Only reference and JS tests should be imported at the moment

Manual edits of tests are highly discouraged

  • It might be hard to keep those edits when rebasing the tests
  • If required, document these clearly in the imported tests themselves
  • Upstream those changes to the original test repository if possible

Rebasing tests

The process consists in updating the revision and reimporting all tests. It is not yet automated. A preliminary patch is available at

  1. Check whether WebKit testharness.js is up-to-date with the latest one used in the W3C repository
    • If not update WebKit testharness.js accordingly
  2. Update the repository revision in LayoutTests/imported/w3c/resources/TestRepositories
  3. Delete all *html|xhtml|xhtm|js|svg* files in the corresponding LayoutTests/imported/w3c sub-folder
  4. Run Tools/Scripts/import-w3c-tests
  5. Check for any manual edit that should be kept
  6. Regenerate expected files using rwt
  7. Remove all dangling expected.txt files and empty folders
    • Some bots have difficulties with removed/added empty files.

Laundry list

  • Handle WPT test repository recursive submodules
    • Automated generation of LayoutTests/imported/w3c/resources/web-platform-tests-modules.json
  • Generate WPT MANIFEST.json and use it to know whether a file is a test or a resource file
  • Check whether a WPT resource file is already skipped in LayoutTests/TestExpectations
  • Finalise rebasing test script
  • Update import script to handle non-W3C test repositories
    • Blink tests
    • WHATWG streams test suite
  • Move already imported test suites to LayoutTests/imported/w3c/web-platform-tests
    • LayoutTests/imported/w3c/canvas, LayoutTests/imported/w3c/html-templates, LayoutTests/imported/w3c/indexeddb
    • LayoutTests/imported/blink/imported/csswg-test/css-writing-modes-3, LayoutTests/imported/blink/imported/web-platform-tests

Exporting tests

Exporting WPT tests

Last modified 2 years ago Last modified on Nov 24, 2021 1:46:17 AM