diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-21 20:56:19 +0000 |
commit | 0b6210cd37b68b94252cb798598b12974a20e1c1 (patch) | |
tree | e371686554a877842d95aa94f100bee552ff2a8e /test/wpt/status | |
parent | Initial commit. (diff) | |
download | node-undici-upstream.tar.xz node-undici-upstream.zip |
Adding upstream version 5.28.2+dfsg1+~cs23.11.12.3.upstream/5.28.2+dfsg1+_cs23.11.12.3upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'test/wpt/status')
-rw-r--r-- | test/wpt/status/FileAPI.status.json | 75 | ||||
-rw-r--r-- | test/wpt/status/fetch.status.json | 457 | ||||
-rw-r--r-- | test/wpt/status/mimesniff.status.json | 7 | ||||
-rw-r--r-- | test/wpt/status/service-workers/cache-storage.status.json | 24 | ||||
-rw-r--r-- | test/wpt/status/websockets.status.json | 115 | ||||
-rw-r--r-- | test/wpt/status/xhr/formdata.status.json | 1 |
6 files changed, 679 insertions, 0 deletions
diff --git a/test/wpt/status/FileAPI.status.json b/test/wpt/status/FileAPI.status.json new file mode 100644 index 0000000..c64d255 --- /dev/null +++ b/test/wpt/status/FileAPI.status.json @@ -0,0 +1,75 @@ +{ + "file": { + "File-constructor.any.js": { + "flaky": [ + "Using type in File constructor: nonparsable" + ] + } + }, + "blob": { + "Blob-constructor.any.js": { + "skip": true + }, + "Blob-stream.any.js": { + "fail": [ + "Reading Blob.stream() with BYOB reader" + ] + } + }, + "url": { + "url-with-xhr.any.js": { + "skip": true + }, + "url-with-fetch.any.js": { + "note": "needs investigation", + "fail": [ + "Only exact matches should revoke URLs, using fetch", + "Revoke blob URL after creating Request, will fetch", + "Revoke blob URL after creating Request, then clone Request, will fetch" + ] + }, + "url-format.any.js": { + "fail": [ + "Origin of Blob URL matches our origin", + "Blob URL parses correctly", + "Origin of Blob URL matches our origin for Files" + ] + } + }, + "reading-data-section": { + "filereader_result.any.js": { + "note": "has to do with html microtask queue being different than queueMicrotask", + "skip": true + }, + "filereader_events.any.js": { + "note": "has to do with html microtask queue being different than queueMicrotask", + "fail": [ + "events are dispatched in the correct order for an empty blob", + "events are dispatched in the correct order for a non-empty blob" + ] + } + }, + "idlharness.any.js": { + "note": "These flaky tests only fail in < node v19; add in a way to mark them as such eventually", + "flaky": [ + "Blob interface: attribute size", + "Blob interface: attribute type", + "Blob interface: operation slice(optional long long, optional long long, optional DOMString)", + "Blob interface: operation stream()", + "Blob interface: operation text()", + "Blob interface: operation arrayBuffer()", + "URL interface: operation createObjectURL((Blob or MediaSource))", + "URL interface: operation revokeObjectURL(DOMString)" + ], + "fail": [ + "FileList interface: existence and properties of interface object", + "FileList interface object length", + "FileList interface object name", + "FileList interface: existence and properties of interface prototype object", + "FileList interface: existence and properties of interface prototype object's \"constructor\" property", + "FileList interface: existence and properties of interface prototype object's @@unscopables property", + "FileList interface: operation item(unsigned long)", + "FileList interface: attribute length" + ] + } +} diff --git a/test/wpt/status/fetch.status.json b/test/wpt/status/fetch.status.json new file mode 100644 index 0000000..5910bf3 --- /dev/null +++ b/test/wpt/status/fetch.status.json @@ -0,0 +1,457 @@ +{ + "api": { + "abort": { + "general.any.js": { + "note": "TODO(@KhafraDev): Clone aborts with original controller can probably be fixed", + "fail": [ + "Already aborted signal rejects immediately", + "Underlying connection is closed when aborting after receiving response - no-cors", + "Stream errors once aborted. Underlying connection closed.", + "Readable stream synchronously cancels with AbortError if aborted before reading", + "Clone aborts with original controller" + ] + }, + "cache.https.any.js": { + "note": "undici doesn't implement http caching", + "skip": true + } + }, + "basic": { + "conditional-get.any.js": { + "fail": [ + "Testing conditional GET with ETags" + ] + }, + "header-value-combining.any.js": { + "fail": [ + "response.headers.get('content-length') expects 0, 0", + "response.headers.get('foo-test') expects 1, 2, 3", + "response.headers.get('heya') expects , \\x0B\f, 1, , , 2" + ], + "flaky": [ + "response.headers.get('content-length') expects 0", + "response.headers.get('double-trouble') expects , ", + "response.headers.get('www-authenticate') expects 1, 2, 3, 4" + ] + }, + "integrity.sub.any.js": { + "fail": [ + "Empty string integrity for opaque response" + ] + }, + "keepalive.any.js": { + "note": "document is not defined", + "skip": true + }, + "mode-no-cors.sub.any.js": { + "note": "undici doesn't implement CORs", + "skip": true + }, + "mode-same-origin.any.js": { + "note": "undici doesn't respect RequestInit.mode", + "skip": true + }, + "referrer.any.js": { + "fail": [ + "origin-when-cross-origin policy on a cross-origin URL", + "origin-when-cross-origin policy on a cross-origin URL after same-origin redirection", + "origin-when-cross-origin policy on a same-origin URL after cross-origin redirection", + "origin-when-cross-origin policy on a same-origin URL" + ] + }, + "request-forbidden-headers.any.js": { + "note": "undici doesn't filter headers", + "skip": true + }, + "request-headers.any.js": { + "fail": [ + "Fetch with Chicken", + "Fetch with Chicken with body", + "Fetch with TacO and mode \"same-origin\" needs an Origin header", + "Fetch with TacO and mode \"cors\" needs an Origin header" + ] + }, + "request-referrer.any.js": { + "note": "TODO(@KhafraDev): url referrer test could probably be fixed", + "fail": [ + "about:client referrer", + "url referrer" + ] + }, + "request-upload.any.js": { + "fail": [ + "Fetch with POST with text body on 421 response should be retried once on new connection." + ] + }, + "request-upload.h2.any.js": { + "note": "undici doesn't support http/2", + "skip": true + }, + "status.h2.any.js": { + "note": "undici doesn't support http/2", + "skip": true + }, + "stream-safe-creation.any.js": { + "note": "tests are very finnicky", + "fail": [ + "throwing Object.prototype.type accessor should not affect stream creation by 'fetch'", + "Object.prototype.type accessor returning invalid value should not affect stream creation by 'fetch'", + "throwing Object.prototype.highWaterMark accessor should not affect stream creation by 'fetch'", + "Object.prototype.highWaterMark accessor returning invalid value should not affect stream creation by 'fetch'" + ] + } + }, + "body": { + "mime-type.any.js": { + "note": "fails on all platforms, https://wpt.fyi/results/fetch/api/body/mime-type.any.html?label=master&label=experimental&product=chrome&product=firefox&product=safari&product=node.js&product=deno&aligned", + "fail": [ + "Response: Extract a MIME type with clone" + ] + } + }, + "cors": { + "note": "undici doesn't implement CORs", + "skip": true + }, + "credentials": { + "authentication-redirection.any.js": { + "note": "connects to https server", + "fail": [ + "getAuthorizationHeaderValue - cross origin redirection", + "getAuthorizationHeaderValue - same origin redirection" + ] + }, + "cookies.any.js": { + "fail": [ + "Include mode: 1 cookie", + "Include mode: 2 cookies", + "Same-origin mode: 1 cookie", + "Same-origin mode: 2 cookies" + ] + } + }, + "fetch-later": { + "note": "this is not part of the spec, only a proposal", + "skip": true + }, + "headers": { + "header-setcookie.any.js": { + "note": "undici doesn't filter headers", + "fail": [ + "Set-Cookie is a forbidden response header" + ] + }, + "header-values-normalize.any.js": { + "note": "TODO(@KhafraDev): https://github.com/nodejs/undici/issues/1680", + "fail": [ + "XMLHttpRequest with value %00", + "XMLHttpRequest with value %01", + "XMLHttpRequest with value %02", + "XMLHttpRequest with value %03", + "XMLHttpRequest with value %04", + "XMLHttpRequest with value %05", + "XMLHttpRequest with value %06", + "XMLHttpRequest with value %07", + "XMLHttpRequest with value %08", + "XMLHttpRequest with value %09", + "XMLHttpRequest with value %0A", + "XMLHttpRequest with value %0D", + "XMLHttpRequest with value %0E", + "XMLHttpRequest with value %0F", + "XMLHttpRequest with value %10", + "XMLHttpRequest with value %11", + "XMLHttpRequest with value %12", + "XMLHttpRequest with value %13", + "XMLHttpRequest with value %14", + "XMLHttpRequest with value %15", + "XMLHttpRequest with value %16", + "XMLHttpRequest with value %17", + "XMLHttpRequest with value %18", + "XMLHttpRequest with value %19", + "XMLHttpRequest with value %1A", + "XMLHttpRequest with value %1B", + "XMLHttpRequest with value %1C", + "XMLHttpRequest with value %1D", + "XMLHttpRequest with value %1E", + "XMLHttpRequest with value %1F", + "XMLHttpRequest with value %20", + "fetch() with value %01", + "fetch() with value %02", + "fetch() with value %03", + "fetch() with value %04", + "fetch() with value %05", + "fetch() with value %06", + "fetch() with value %07", + "fetch() with value %08", + "fetch() with value %0E", + "fetch() with value %0F", + "fetch() with value %10", + "fetch() with value %11", + "fetch() with value %12", + "fetch() with value %13", + "fetch() with value %14", + "fetch() with value %15", + "fetch() with value %16", + "fetch() with value %17", + "fetch() with value %18", + "fetch() with value %19", + "fetch() with value %1A", + "fetch() with value %1B", + "fetch() with value %1C", + "fetch() with value %1D", + "fetch() with value %1E", + "fetch() with value %1F" + ] + }, + "header-values.any.js": { + "fail": [ + "XMLHttpRequest with value x%00x needs to throw", + "XMLHttpRequest with value x%0Ax needs to throw", + "XMLHttpRequest with value x%0Dx needs to throw", + "XMLHttpRequest with all valid values", + "fetch() with all valid values" + ] + }, + "headers-no-cors.any.js": { + "note": "undici doesn't implement CORs", + "skip": true + } + }, + "redirect": { + "redirect-empty-location.any.js": { + "note": "undici handles redirect: manual differently than browsers", + "fail": [ + "redirect response with empty Location, manual mode" + ] + }, + "redirect-keepalive.any.js": { + "note": "document is not defined", + "skip": true + }, + "redirect-location-escape.tentative.any.js": { + "note": "TODO(@KhafraDev): crashes runner", + "skip": true + }, + "redirect-location.any.js": { + "note": "undici handles redirect: manual differently than browsers", + "fail": [ + "Redirect 301 in \"manual\" mode without location", + "Redirect 301 in \"manual\" mode with invalid location", + "Redirect 301 in \"manual\" mode with data location", + "Redirect 302 in \"manual\" mode without location", + "Redirect 302 in \"manual\" mode with invalid location", + "Redirect 302 in \"manual\" mode with data location", + "Redirect 303 in \"manual\" mode without location", + "Redirect 303 in \"manual\" mode with invalid location", + "Redirect 303 in \"manual\" mode with data location", + "Redirect 307 in \"manual\" mode without location", + "Redirect 307 in \"manual\" mode with invalid location", + "Redirect 307 in \"manual\" mode with data location", + "Redirect 308 in \"manual\" mode without location", + "Redirect 308 in \"manual\" mode with invalid location", + "Redirect 308 in \"manual\" mode with data location", + "Redirect 301 in \"manual\" mode with valid location", + "Redirect 302 in \"manual\" mode with valid location", + "Redirect 303 in \"manual\" mode with valid location", + "Redirect 307 in \"manual\" mode with valid location", + "Redirect 308 in \"manual\" mode with valid location" + ] + }, + "redirect-method.any.js": { + "fail": [ + "Redirect 303 with TESTING" + ] + }, + "redirect-mode.any.js": { + "note": "mode isn't respected", + "skip": true + }, + "redirect-origin.any.js": { + "note": "TODO(@KhafraDev): investigate", + "skip": true + }, + "redirect-referrer-override.any.js": { + "note": "TODO(@KhafraDev): investigate", + "skip": true + }, + "redirect-referrer.any.js": { + "note": "TODO(@KhafraDev): investigate", + "skip": true + }, + "redirect-upload.h2.any.js": { + "note": "undici doesn't support http/2", + "skip": true + } + }, + "request": { + "request-cache-default-conditional.any.js": { + "note": "undici doesn't implement an http cache", + "skip": true + }, + "request-cache-default.any.js": { + "note": "undici doesn't implement an http cache", + "skip": true + }, + "request-cache-force-cache.any.js": { + "note": "undici doesn't implement an http cache", + "skip": true + }, + "request-cache-no-cache.any.js": { + "note": "undici doesn't implement an http cache", + "skip": true + }, + "request-cache-no-store.any.js": { + "note": "undici doesn't implement an http cache", + "skip": true + }, + "request-cache-only-if-cached.any.js": { + "note": "undici doesn't implement an http cache", + "skip": true + }, + "request-cache-reload.any.js": { + "note": "undici doesn't implement an http cache", + "skip": true + }, + "request-consume-empty.any.js": { + "note": "the semantics about this test are being discussed - https://github.com/web-platform-tests/wpt/pull/3950", + "fail": [ + "Consume empty FormData request body as text" + ] + }, + "request-disturbed.any.js": { + "note": "this test fails in all other platforms - https://wpt.fyi/results/fetch/api/request/request-disturbed.any.html?label=master&label=experimental&product=chrome&product=firefox&product=safari&product=deno&aligned&view=subtest", + "fail": [ + "Input request used for creating new request became disturbed even if body is not used" + ] + }, + "request-headers.any.js": { + "note": "undici doesn't filter headers", + "fail": [ + "Adding invalid request header \"Accept-Charset: KO\"", + "Adding invalid request header \"accept-charset: KO\"", + "Adding invalid request header \"ACCEPT-ENCODING: KO\"", + "Adding invalid request header \"Accept-Encoding: KO\"", + "Adding invalid request header \"Access-Control-Request-Headers: KO\"", + "Adding invalid request header \"Access-Control-Request-Method: KO\"", + "Adding invalid request header \"Access-Control-Request-Private-Network: KO\"", + "Adding invalid request header \"Connection: KO\"", + "Adding invalid request header \"Content-Length: KO\"", + "Adding invalid request header \"Cookie: KO\"", + "Adding invalid request header \"Cookie2: KO\"", + "Adding invalid request header \"Date: KO\"", + "Adding invalid request header \"DNT: KO\"", + "Adding invalid request header \"Expect: KO\"", + "Adding invalid request header \"Host: KO\"", + "Adding invalid request header \"Keep-Alive: KO\"", + "Adding invalid request header \"Origin: KO\"", + "Adding invalid request header \"Referer: KO\"", + "Adding invalid request header \"Set-Cookie: KO\"", + "Adding invalid request header \"TE: KO\"", + "Adding invalid request header \"Trailer: KO\"", + "Adding invalid request header \"Transfer-Encoding: KO\"", + "Adding invalid request header \"Upgrade: KO\"", + "Adding invalid request header \"Via: KO\"", + "Adding invalid request header \"Proxy-: KO\"", + "Adding invalid request header \"proxy-a: KO\"", + "Adding invalid request header \"Sec-: KO\"", + "Adding invalid request header \"sec-b: KO\"", + "Adding invalid no-cors request header \"Content-Type: KO\"", + "Adding invalid no-cors request header \"Potato: KO\"", + "Adding invalid no-cors request header \"proxy: KO\"", + "Adding invalid no-cors request header \"proxya: KO\"", + "Adding invalid no-cors request header \"sec: KO\"", + "Adding invalid no-cors request header \"secb: KO\"", + "Adding invalid no-cors request header \"Empty-Value: \"", + "Check that request constructor is filtering headers provided as init parameter", + "Check that no-cors request constructor is filtering headers provided as init parameter", + "Check that no-cors request constructor is filtering headers provided as part of request parameter" + ] + }, + "request-init-priority.any.js": { + "note": "undici doesn't implement priority hints, yet(?)", + "skip": true + } + }, + "response": { + "response-clone.any.js": { + "fail": [ + "Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk)", + "Check response clone use structureClone for teed ReadableStreams (DataViewchunk)" + ] + }, + "response-consume-empty.any.js": { + "fail": [ + "Consume empty FormData response body as text" + ] + }, + "response-consume-stream.any.js": { + "fail": [ + "Read blob response's body as readableStream with mode=byob", + "Read text response's body as readableStream with mode=byob", + "Read URLSearchParams response's body as readableStream with mode=byob", + "Read array buffer response's body as readableStream with mode=byob", + "Read form data response's body as readableStream with mode=byob" + ] + }, + "response-error-from-stream.any.js": { + "fail": [ + "ReadableStream start() Error propagates to Response.formData() Promise", + "ReadableStream pull() Error propagates to Response.formData() Promise" + ] + }, + "response-stream-with-broken-then.any.js": { + "note": "this is a bug in webstreams, see https://github.com/nodejs/node/issues/46786", + "skip": true + } + } + }, + "content-length": { + "api-and-duplicate-headers.any.js": { + "fail": [ + "XMLHttpRequest and duplicate Content-Length/Content-Type headers", + "fetch() and duplicate Content-Length/Content-Type headers" + ] + } + }, + "cross-origin-resource-policy": { + "note": "undici doesn't implement CORs", + "skip": true + }, + "http-cache": { + "note": "undici doesn't implement http caching", + "skip": true + }, + "metadata": { + "note": "undici doesn't respect RequestInit.mode", + "skip": true + }, + "orb": { + "tentative": { + "note": "undici doesn't implement orb", + "skip": true + } + }, + "range": { + "note": "undici doesn't respect range header", + "skip": true + }, + "security": { + "1xx-response.any.js": { + "fail": [ + "Status(100) should be ignored.", + "Status(101) should be accepted, with removing body.", + "Status(103) should be ignored.", + "Status(199) should be ignored." + ] + } + }, + "stale-while-revalidate": { + "note": "undici doesn't implement http caching", + "skip": true + }, + "idlharness.any.js": { + "flaky": [ + "Window interface: operation fetch(RequestInfo, optional RequestInit)" + ] + } +} diff --git a/test/wpt/status/mimesniff.status.json b/test/wpt/status/mimesniff.status.json new file mode 100644 index 0000000..ab9a3d3 --- /dev/null +++ b/test/wpt/status/mimesniff.status.json @@ -0,0 +1,7 @@ +{ + "mime-types": { + "parsing.any.js": { + "allowUnexpectedFailures": true + } + } +} diff --git a/test/wpt/status/service-workers/cache-storage.status.json b/test/wpt/status/service-workers/cache-storage.status.json new file mode 100644 index 0000000..09a291e --- /dev/null +++ b/test/wpt/status/service-workers/cache-storage.status.json @@ -0,0 +1,24 @@ +{ + "cache-storage": { + "cache-abort.https.any.js": { + "skip": true + }, + "cache-storage-buckets.https.any.js": { + "skip": true, + "note": "navigator is not defined" + }, + "cache-put.https.any.js": { + "note": "probably can be fixed", + "fail": [ + "Cache.put with a VARY:* opaque response should not reject", + "Cache.put with opaque-filtered HTTP 206 response" + ] + }, + "cache-match.https.any.js": { + "note": "requires https server", + "fail": [ + "cors-exposed header should be stored correctly." + ] + } + } +} diff --git a/test/wpt/status/websockets.status.json b/test/wpt/status/websockets.status.json new file mode 100644 index 0000000..68bc6e2 --- /dev/null +++ b/test/wpt/status/websockets.status.json @@ -0,0 +1,115 @@ +{ + "stream": { + "tentative": { + "skip": true + } + }, + "Create-blocked-port.any.js": { + "note": "TODO(@KhafraDev): investigate failure", + "fail": [ + "Basic check" + ] + }, + "Send-binary-arraybufferview-float32.any.js": { + "note": "TODO(@KhafraDev): investigate failure", + "fail": [ + "Send binary data on a WebSocket - ArrayBufferView - Float32Array - Connection should be closed" + ] + }, + "Send-binary-arraybufferview-float64.any.js": { + "note": "TODO(@KhafraDev): investigate failure", + "fail": [ + "Send binary data on a WebSocket - ArrayBufferView - Float64Array - Connection should be closed" + ] + }, + "Send-binary-arraybufferview-int16-offset.any.js": { + "note": "TODO(@KhafraDev): investigate failure", + "fail": [ + "Send binary data on a WebSocket - ArrayBufferView - Int16Array with offset - Connection should be closed" + ] + }, + "Send-binary-arraybufferview-int32.any.js": { + "note": "TODO(@KhafraDev): investigate failure", + "fail": [ + "Send binary data on a WebSocket - ArrayBufferView - Int32Array - Connection should be closed" + ] + }, + "Send-binary-arraybufferview-uint16-offset-length.any.js": { + "note": "TODO(@KhafraDev): investigate failure", + "fail": [ + "Send binary data on a WebSocket - ArrayBufferView - Uint16Array with offset and length - Connection should be closed" + ] + }, + "Send-binary-arraybufferview-uint32-offset.any.js": { + "note": "TODO(@KhafraDev): investigate failure", + "fail": [ + "Send binary data on a WebSocket - ArrayBufferView - Uint32Array with offset - Connection should be closed" + ] + }, + "basic-auth.any.js": { + "note": "TODO(@KhafraDev): investigate failure", + "fail": [ + "HTTP basic authentication should work with WebSockets" + ] + }, + "Create-on-worker-shutdown.any.js": { + "skip": true, + "//": "Node.js workers are different from web workers & don't work with blob: urls" + }, + "Close-delayed.any.js": { + "skip": true + }, + "bufferedAmount-unchanged-by-sync-xhr.any.js": { + "skip": true, + "//": "Node.js doesn't have XMLHttpRequest nor does this test make sense regardless" + }, + "referrer.any.js": { + "skip": true + }, + "Send-binary-blob.any.js": { + "flaky": [ + "Send binary data on a WebSocket - Blob - Connection should be closed" + ] + }, + "Send-65K-data.any.js": { + "flaky": [ + "Send 65K data on a WebSocket - Connection should be closed" + ] + }, + "Send-binary-65K-arraybuffer.any.js": { + "flaky": [ + "Send 65K binary data on a WebSocket - ArrayBuffer - Connection should be closed" + ] + }, + "Send-0byte-data.any.js": { + "flaky": [ + "Send 0 byte data on a WebSocket - Connection should be closed" + ] + }, + "send-many-64K-messages-with-backpressure.any.js": { + "note": "probably flaky based on other flaky tests.", + "flaky": [ + "sending 50 messages of size 65536 with backpressure applied should not hang" + ] + }, + "back-forward-cache-with-closed-websocket-connection-ccns.tentative.window.js": { + "skip": true, + "note": "browser-only test" + }, + "back-forward-cache-with-closed-websocket-connection.window.js": { + "skip": true, + "note": "browser-only test" + }, + "back-forward-cache-with-open-websocket-connection-ccns.tentative.window.js": { + "skip": true, + "note": "browser-only test" + }, + "back-forward-cache-with-open-websocket-connection.window.js": { + "skip": true, + "note": "browser-only test" + }, + "mixed-content.https.any.js": { + "note": "node has no concept of origin, thus there is no 'secure' or 'insecure' contexts", + "skip": true + } +} diff --git a/test/wpt/status/xhr/formdata.status.json b/test/wpt/status/xhr/formdata.status.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/test/wpt/status/xhr/formdata.status.json @@ -0,0 +1 @@ +{} |