LibURL: Make port state override return failure more for URLPattern

Corresponds to URL spec change:

cc8b776b

Note that the new test failure being introduced here is an unrelated
WPT test change bundled in the resources test file update that I am
not convinced is correct.
This commit is contained in:
Shannon Booth 2025-03-25 16:41:46 +13:00 committed by Tim Flynn
commit a9777a3300
Notes: github-actions[bot] 2025-04-06 12:26:15 +00:00
3 changed files with 65 additions and 18 deletions

View file

@ -1,9 +1,9 @@
Harness status: OK
Found 350 tests
Found 354 tests
340 Pass
10 Fail
346 Pass
8 Fail
Pass Loading data...
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/bar"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/ba"}]
@ -170,12 +170,16 @@ Pass Pattern: [{"pathname":":
Pass Pattern: [{"port":""}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http","port":"80"}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http","port":"80{20}?"}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http","port":"80 "}] Inputs: [{"protocol":"http","port":"80"}]
Fail Pattern: [{"protocol":"http","port":"80 "}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http","port":"100000"}] Inputs: [{"protocol":"http","port":"100000"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"protocol":"http{s}?","port":"80"}] Inputs: [{"protocol":"http","port":"80"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"80"}]
Fail Pattern: [{"port":"(.*)"}] Inputs: [{"port":"invalid80"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"8\t0"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"80x"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"80?x"}]
Pass Pattern: [{"port":"80"}] Inputs: [{"port":"80\\x"}]
Pass Pattern: [{"port":"(.*)"}] Inputs: [{"port":"invalid80"}]
Pass Pattern: [{"pathname":"/foo/bar"}] Inputs: [{"pathname":"/foo/./bar"}]
Pass Pattern: [{"pathname":"/foo/baz"}] Inputs: [{"pathname":"/foo/bar/../baz"}]
Pass Pattern: [{"pathname":"/caf%C3%A9"}] Inputs: [{"pathname":"/café"}]
@ -236,7 +240,7 @@ Pass Pattern: ["https://example.com/"] Inputs: ["https://example.com:8080/"]
Pass Pattern: ["data:foobar"] Inputs: ["data:foobar"]
Pass Pattern: ["data\\:foobar"] Inputs: ["data:foobar"]
Pass Pattern: ["https://{sub.}?example.com/foo"] Inputs: ["https://example.com/foo"]
Fail Pattern: ["https://{sub.}?example{.com/}foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["https://{sub.}?example{.com/}foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["{https://}example.com/foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["https://(sub.)?example.com/foo"] Inputs: ["https://example.com/foo"]
Pass Pattern: ["https://(sub.)?example(.com/)foo"] Inputs: ["https://example.com/foo"]
@ -293,7 +297,7 @@ Pass Pattern: [{"hostname":"bad hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad#hostname"}] Inputs: [{"hostname":"bad"}]
Fail Pattern: [{"hostname":"bad%hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad/hostname"}] Inputs: [{"hostname":"bad"}]
Fail Pattern: [{"hostname":"bad\\:hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad\\:hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad<hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad>hostname"}] Inputs: undefined
Pass Pattern: [{"hostname":"bad?hostname"}] Inputs: undefined

View file

@ -1202,10 +1202,11 @@
{
"pattern": [{ "protocol": "http", "port": "80 " }],
"inputs": [{ "protocol": "http", "port": "80" }],
"exactly_empty_components": ["port"],
"expected_match": {
"protocol": { "input": "http", "groups": {} }
}
"expected_obj": {
"protocol": "http",
"port": "80"
},
"expected_match": null
},
{
"pattern": [{ "protocol": "http", "port": "100000" }],
@ -1229,6 +1230,34 @@
"port": { "input": "80", "groups": {}}
}
},
{
"pattern": [{ "port": "80" }],
"inputs": [{ "port": "8\t0" }],
"expected_match": {
"port": { "input": "80", "groups": {}}
}
},
{
"pattern": [{ "port": "80" }],
"inputs": [{ "port": "80x" }],
"expected_match": {
"port": { "input": "80", "groups": {}}
}
},
{
"pattern": [{ "port": "80" }],
"inputs": [{ "port": "80?x" }],
"expected_match": {
"port": { "input": "80", "groups": {}}
}
},
{
"pattern": [{ "port": "80" }],
"inputs": [{ "port": "80\\x" }],
"expected_match": {
"port": { "input": "80", "groups": {}}
}
},
{
"pattern": [{ "port": "(.*)" }],
"inputs": [{ "port": "invalid80" }],
@ -1874,7 +1903,17 @@
{
"pattern": [ "https://{sub.}?example{.com/}foo" ],
"inputs": [ "https://example.com/foo" ],
"expected_obj": "error"
"exactly_empty_components": [ "port" ],
"expected_obj": {
"protocol": "https",
"hostname": "{sub.}?example.com",
"pathname": "*"
},
"expected_match": {
"protocol": { "input": "https", "groups": {} },
"hostname": { "input": "example.com", "groups": {} },
"pathname": { "input": "/foo", "groups": { "0": "/foo" } }
}
},
{
"pattern": [ "{https://}example.com/foo" ],