node
node copied to clipboard
test: update WPT runner
This PR updates the WPT runner in an attempt to fix the following issues:
- if a test file has a single expected failure new regressions are not caught
- if a test file has expected failures and doesn't fail the runner does nothing with the information
- if a test file has a flaky test the only possibility is to skip the whole file
In the following way:
- expected failures are now test names, not arbitrary strings
- all expected failures must be present in the results otherwise the runner fails with an
unexpected pass
- a
flaky
array of test names can also be present to allow tests files to be executed whilst containing individual flaky tests.
Other updates (e.g. to the status files, or wpt entry points)
- "skip" instead of "fail" to reflect what the actual behaviour was
- updating expected failures to be the reported failed test names rather than arbitrary descriptions
- allowing more tests that weren't run before by adding a simple polyfill to fix the
location is not defined
error. This one is coming from wpt orchestration (test/fixtures/wpt/common/subset-tests.js), not the actual tests. - CI worker concurrency management that would bog the tests down due to the unlocked WebCryptoAPI WPT tests.
cc @joyeecheung, she did the last refactor (#33297) to the runner behaviour v status file format.
I am unsure which teams to tag here.
CI: https://ci.nodejs.org/job/node-test-pull-request/44628/
I am unsure which teams to tag here.
I think it should cc to @nodejs/testing
I think I'll further refactor to allow the expected failures be the test names, not just the errors. This will avoid issues where the error includes a cwd (like the current CI failures).
CI: https://ci.nodejs.org/job/node-test-pull-request/44652/
CI: https://ci.nodejs.org/job/node-test-pull-request/44661/
CI: https://ci.nodejs.org/job/node-test-pull-request/44697/
CI: https://ci.nodejs.org/job/node-test-pull-request/44717/
CI: https://ci.nodejs.org/job/node-test-pull-request/45050/
CI: https://ci.nodejs.org/job/node-test-pull-request/45051/
I also feel hard to change something related to web compatibility since regressions are not detected with the current runner. Hope that this PR gets progressed.
CI: https://ci.nodejs.org/job/node-test-pull-request/45854/
CI: https://ci.nodejs.org/job/node-test-pull-request/45855/
CI: https://ci.nodejs.org/job/node-test-pull-request/45856/
CI: https://ci.nodejs.org/job/node-test-pull-request/45858/
CI: https://ci.nodejs.org/job/node-test-pull-request/45860/
CI: https://ci.nodejs.org/job/node-test-pull-request/45865/
Needs investigating:
-
ubuntu1804_sharedlibs_withoutintl_x64
has an unexpected pass the othertest-commit-linux-containered
build types don't (intest.wpt/test-encoding
) -
win2012r2-COMPILED_BY-vs2019-x86
has an unexpected failure the other build types don't (intest.wpt/test-broadcastchannel
)
Not sure how to build in overrides for specific platforms that would allow to target this.
ubuntu1804_sharedlibs_withoutintl_x64
has an unexpected pass the othertest-commit-linux-containered
build types don't (intest.wpt/test-encoding
)
This is because the file is conditionally skipped
---- streams/decode-utf8.any.js ----
[SKIPPED] requires small-icu
I need to account for such scenario.
win2012r2-COMPILED_BY-vs2019-x86
has an unexpected failure the other build types don't (intest.wpt/test-broadcastchannel
)
may be flaky
CI: https://ci.nodejs.org/job/node-test-pull-request/45866/
CI: https://ci.nodejs.org/job/node-test-pull-request/45869/
CI: https://ci.nodejs.org/job/node-test-pull-request/45870/
cc @nodejs/testing https://github.com/nodejs/node/labels/review%20wanted
@joyeecheung @targos Any chance one of you could give this a quick look?
CI: https://ci.nodejs.org/job/node-test-pull-request/45928/
CI: https://ci.nodejs.org/job/node-test-pull-request/45931/
CI: https://ci.nodejs.org/job/node-test-pull-request/45936/
CI: https://ci.nodejs.org/job/node-test-pull-request/45938/
Are the without-intl and without-ssl failures for wpt-console related?
Are the without-intl and without-ssl failures for wpt-console related?
They used to be silently ignored before. Now they're out in the light.
I'll flake the tests or skip the file (only 2 options we have) and open an issue for console to investigate.
CI: https://ci.nodejs.org/job/node-test-pull-request/45942/
I'll have a look at CI again later today.
CI: https://ci.nodejs.org/job/node-test-pull-request/45950/
CI: https://ci.nodejs.org/job/node-test-pull-request/45953/
CI: https://ci.nodejs.org/job/node-test-pull-request/45961/
CI: https://ci.nodejs.org/job/node-test-pull-request/45962/
Landed in c3ff198a773efe68afc1631c50b8c36f8f027aba