New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update web-platform tests #3203
Conversation
Thanks a lot for the hard work in triaging the new tests!
This is probably hard to fix, as the deletion behavior is specified by WindowProxy's [[Delete]] abstract operation, which we can't override without making WindowProxy a Proxy object (which is hard). (We also can't make numeric properties non-configurable, since we need to be able to delete the properties ourselves when an iframe gets detached.)
This probably has to do with whatwg/html#6287, part of https://blog.whatwg.org/newline-normalizations-in-form-submission. We probably have to adjust our own code to conform.
Probably related to the FormData test above. The spec now says "The algorithm for obtaining the element's API value is to return the element's raw value, with newlines normalized." The
Not sure. We don't support media queries particularly well.
This is probably https://github.com/whatwg/html/pull/1752/files, which creates the get an XML encoding algorithm. That'll have to be fixed in https://github.com/jsdom/html-encoding-sniffer.
Let's create an issue for this.
Usually we fix simple issues in the same PR as the WPT roll. Unless the test is too hard to enable, in which case we just add the expectations in the to-run YAML file. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good for the most part.
It looks like the tests are completing successfully in about 25 minutes, but not exiting, causing CI to time out after 6 hours. |
Implemented the FormData and TextArea changes; newlines are no longer normalized to CRLF, since the spec changes deferred that process to the actual encoding step. Implemented the textarea wrapping transformation, wrapping textarea content to at most |
Could you reproduce this timeout locally? If so, you could try using why-is-node-running or wtfnode to help debug what's preventing the process from exiting. |
See the comment at start-wpt-server.js lines 56-57.
I can reproduce the timeout locally. I'm messing around with However, in the process I did find a strange inconsistency and possible solution: jsdom/test/web-platform-tests/start-wpt-server.js Lines 55 to 59 in 0024630
SIGINT is necessary to kill the test server, but the after() hook in jsdom/test/web-platform-tests/run-wpts.js Lines 51 to 53 in 0024630
SIGTERM , which the test server presumably ignores.
Changing the latter to |
The remaining CI failures occur in a new test that uses
Thoughts? |
Dropping Node 10 is planned; you can proceed assuming this will get merged after #3192 |
Both check on globalThis, which is only present on node 12+.
Thanks @TimothyGu for all the help & guidance on this PR, the pointers to the various specs were really helpful and I'm glad I was able to contribute! |
Updates web-platform-tests, per #3200 (comment).
Let me know if I missed anything or did anything terribly wrong.
Interesting new test failures (with the caveat that I really don't know what I'm looking at or talking about here):
html/browsers/the-window-object
:window-indexed-properties-delete-no-cache.html
: in jsdom, when the window has iframes, the numeric properties that refer to them (e.g.window[0]
) can be deleted. Deletion should fail.xhr
:formdata/constructor-formelement.html
: formdata should normalize linebreaks to\n
, but does not?html/semantics/forms/the-textarea-element
:wrapping-transformation.window.html
: TextArea normalizes newlines for the purpose of thevalue
getter, but not thetextContent
getter?html/semantics/embedded-content/the-img-element
:img-picture-ancestor.html
,source-media-outside-doc.html
: Img elements don't set theircurrentSrc
in some cases; possibly related to media queries?html/syntax
:xmldecl/xmldecl-*.html
: looks like the content encoding of xml documents is being detected wrong?shadow-dom
:imperative-slot-api*
: tests for a new API (Slot.assign()
) that jsdom doesn't implement yet?Should issues be opened for any of the above?