Skip to content
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

test: update encoding web-platform tests #53477

Merged
merged 1 commit into from
Jun 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion test/fixtures/wpt/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Last update:
- console: https://github.com/web-platform-tests/wpt/tree/767ae35464/console
- dom/abort: https://github.com/web-platform-tests/wpt/tree/d1f1ecbd52/dom/abort
- dom/events: https://github.com/web-platform-tests/wpt/tree/ab8999891c/dom/events
- encoding: https://github.com/web-platform-tests/wpt/tree/a58bbf6d8c/encoding
- encoding: https://github.com/web-platform-tests/wpt/tree/5aa50dd415/encoding
- fetch/data-urls/resources: https://github.com/web-platform-tests/wpt/tree/7c79d998ff/fetch/data-urls/resources
- FileAPI: https://github.com/web-platform-tests/wpt/tree/cceaf3628d/FileAPI
- hr-time: https://github.com/web-platform-tests/wpt/tree/34cafd797e/hr-time
Expand Down
1 change: 1 addition & 0 deletions test/fixtures/wpt/encoding/api-basics.any.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// META: global=window,dedicatedworker,shadowrealm
// META: title=Encoding API: Basics

test(function() {
Expand Down
1 change: 1 addition & 0 deletions test/fixtures/wpt/encoding/api-surrogates-utf8.any.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// META: global=window,dedicatedworker,shadowrealm
// META: title=Encoding API: Invalid UTF-16 surrogates with UTF-8 encoding

var badStrings = [
Expand Down
1 change: 1 addition & 0 deletions test/fixtures/wpt/encoding/encodeInto.any.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@
"Uint8ClampedArray",
"BigInt64Array",
"BigUint64Array",
"Float16Array",
"Float32Array",
"Float64Array"].forEach(type => {
["ArrayBuffer", "SharedArrayBuffer"].forEach((arrayBufferOrSharedArrayBuffer) => {
Expand Down
2 changes: 2 additions & 0 deletions test/fixtures/wpt/encoding/iso-2022-jp-decoder.any.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// META: global=window,dedicatedworker,shadowrealm
//
function decode(input, output, desc) {
test(function() {
var d = new TextDecoder("iso-2022-jp"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,44 @@ decode([0x83, 0x36, 0xC8, 0x30], "\uE7C8", "legacy ICU special case 1");
decode([0xA1, 0xAD], "\u2026", "legacy ICU special case 2");
decode([0xA1, 0xAB], "\uFF5E", "legacy ICU special case 3");

// GB18030-2022
decode([0xA6, 0xD9], "\uFE10", "GB18030-2022 1");
decode([0xA6, 0xDA], "\uFE12", "GB18030-2022 2");
decode([0xA6, 0xDB], "\uFE11", "GB18030-2022 3");
decode([0xA6, 0xDC], "\uFE13", "GB18030-2022 4");
decode([0xA6, 0xDD], "\uFE14", "GB18030-2022 5");
decode([0xA6, 0xDE], "\uFE15", "GB18030-2022 6");
decode([0xA6, 0xDF], "\uFE16", "GB18030-2022 7");
decode([0xA6, 0xEC], "\uFE17", "GB18030-2022 8");
decode([0xA6, 0xED], "\uFE18", "GB18030-2022 9");
decode([0xA6, 0xF3], "\uFE19", "GB18030-2022 10");
decode([0xFE, 0x59], "\u9FB4", "GB18030-2022 11");
decode([0xFE, 0x61], "\u9FB5", "GB18030-2022 12");
decode([0xFE, 0x66], "\u9FB6", "GB18030-2022 13");
decode([0xFE, 0x67], "\u9FB7", "GB18030-2022 14");
decode([0xFE, 0x6D], "\u9FB8", "GB18030-2022 15");
decode([0xFE, 0x7E], "\u9FB9", "GB18030-2022 16");
decode([0xFE, 0x90], "\u9FBA", "GB18030-2022 17");
decode([0xFE, 0xA0], "\u9FBB", "GB18030-2022 18");
decode([0x82, 0x35, 0x90, 0x37], "\uE81E", "GB18030-2022 19");
decode([0x82, 0x35, 0x90, 0x38], "\uE826", "GB18030-2022 20");
decode([0x82, 0x35, 0x90, 0x39], "\uE82B", "GB18030-2022 21");
decode([0x82, 0x35, 0x91, 0x30], "\uE82C", "GB18030-2022 22");
decode([0x82, 0x35, 0x91, 0x31], "\uE832", "GB18030-2022 23");
decode([0x82, 0x35, 0x91, 0x32], "\uE843", "GB18030-2022 24");
decode([0x82, 0x35, 0x91, 0x33], "\uE854", "GB18030-2022 25");
decode([0x82, 0x35, 0x91, 0x34], "\uE864", "GB18030-2022 26");
decode([0x84, 0x31, 0x82, 0x36], "\uE78D", "GB18030-2022 27");
decode([0x84, 0x31, 0x82, 0x37], "\uE78F", "GB18030-2022 28");
decode([0x84, 0x31, 0x82, 0x38], "\uE78E", "GB18030-2022 29");
decode([0x84, 0x31, 0x82, 0x39], "\uE790", "GB18030-2022 30");
decode([0x84, 0x31, 0x83, 0x30], "\uE791", "GB18030-2022 31");
decode([0x84, 0x31, 0x83, 0x31], "\uE792", "GB18030-2022 32");
decode([0x84, 0x31, 0x83, 0x32], "\uE793", "GB18030-2022 33");
decode([0x84, 0x31, 0x83, 0x33], "\uE794", "GB18030-2022 34");
decode([0x84, 0x31, 0x83, 0x34], "\uE795", "GB18030-2022 35");
decode([0x84, 0x31, 0x83, 0x35], "\uE796", "GB18030-2022 36");

let i = 0;
for (const range of ranges) {
const pointer = range[0];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,44 @@
encode("\u2026", "%A1%AD", "legacy ICU special case 2");
encode("\uFF5E", "%A1%AB", "legacy ICU special case 3");

// GB18030-2022
encode("\uFE10", "%A6%D9", "GB18030-2022 1");
encode("\uFE12", "%A6%DA", "GB18030-2022 2");
encode("\uFE11", "%A6%DB", "GB18030-2022 3");
encode("\uFE13", "%A6%DC", "GB18030-2022 4");
encode("\uFE14", "%A6%DD", "GB18030-2022 5");
encode("\uFE15", "%A6%DE", "GB18030-2022 6");
encode("\uFE16", "%A6%DF", "GB18030-2022 7");
encode("\uFE17", "%A6%EC", "GB18030-2022 8");
encode("\uFE18", "%A6%ED", "GB18030-2022 9");
encode("\uFE19", "%A6%F3", "GB18030-2022 10");
encode("\u9FB4", "%FEY", "GB18030-2022 11");
encode("\u9FB5", "%FEa", "GB18030-2022 12");
encode("\u9FB6", "%FEf", "GB18030-2022 13");
encode("\u9FB7", "%FEg", "GB18030-2022 14");
encode("\u9FB8", "%FEm", "GB18030-2022 15");
encode("\u9FB9", "%FE~", "GB18030-2022 16");
encode("\u9FBA", "%FE%90", "GB18030-2022 17");
encode("\u9FBB", "%FE%A0", "GB18030-2022 18");
encode("\uE78D", "%841%826", "GB18030-2022 19");
encode("\uE78E", "%841%828", "GB18030-2022 20");
encode("\uE78F", "%841%827", "GB18030-2022 21");
encode("\uE790", "%841%829", "GB18030-2022 22");
encode("\uE791", "%841%830", "GB18030-2022 23");
encode("\uE792", "%841%831", "GB18030-2022 24");
encode("\uE793", "%841%832", "GB18030-2022 25");
encode("\uE794", "%841%833", "GB18030-2022 26");
encode("\uE795", "%841%834", "GB18030-2022 27");
encode("\uE796", "%841%835", "GB18030-2022 28");
encode("\uE81E", "%825%907", "GB18030-2022 29");
encode("\uE826", "%825%908", "GB18030-2022 30");
encode("\uE82B", "%825%909", "GB18030-2022 31");
encode("\uE82C", "%825%910", "GB18030-2022 32");
encode("\uE832", "%825%911", "GB18030-2022 33");
encode("\uE843", "%825%912", "GB18030-2022 34");
encode("\uE854", "%825%913", "GB18030-2022 35");
encode("\uE864", "%825%914", "GB18030-2022 36");

const upperCaseNibble = x => {
return Math.floor(x).toString(16).toUpperCase();
}
Expand Down
Binary file modified test/fixtures/wpt/encoding/resources/utf-32-big-endian-nobom.xml
Binary file not shown.
Binary file not shown.
4 changes: 1 addition & 3 deletions test/fixtures/wpt/encoding/sharedarraybuffer.https.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,7 @@
test(() => {
const decoder = new TextDecoder('utf-8');
const buffer = new SharedArrayBuffer(4);
assert_throws_js(TypeError, () => {
decoder.decode(new Uint8Array(buffer));
}, 'constructing TextDecoder with SharedArrayBuffer view should throw');
assert_equals(decoder.decode(new Uint8Array(buffer)), "\u0000\u0000\u0000\u0000");
}, 'decoding SharedArrayBuffer');

</script>
2 changes: 1 addition & 1 deletion test/fixtures/wpt/encoding/streams/backpressure.any.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// META: global=window,worker
// META: global=window,worker,shadowrealm

'use strict';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// META: global=window,worker
// META: global=window,worker,shadowrealm

'use strict';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// META: global=window,worker
// META: global=window,worker,shadowrealm

'use strict';

Expand Down
2 changes: 1 addition & 1 deletion test/fixtures/wpt/encoding/streams/decode-non-utf8.any.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// META: global=window,worker
// META: global=window,worker,shadowrealm

'use strict';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// META: global=window,worker
// META: global=window,worker,shadowrealm

// This just tests that the "readable" and "writable" properties pass the brand
// checks. All other relevant attributes are covered by the IDL tests.
Expand Down
1 change: 1 addition & 0 deletions test/fixtures/wpt/encoding/textdecoder-arguments.any.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// META: global=window,dedicatedworker,shadowrealm
// META: title=Encoding API: TextDecoder decode() optional arguments

test(t => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// META: global=window,dedicatedworker,shadowrealm
// META: title=Encoding API: Byte-order marks

var testCases = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// META: global=window,dedicatedworker,shadowrealm
// META: title=Encoding API: End-of-file

test(function() {
Expand Down
1 change: 1 addition & 0 deletions test/fixtures/wpt/encoding/textdecoder-fatal.any.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// META: global=window,dedicatedworker,shadowrealm
// META: title=Encoding API: Fatal flag

var bad = [
Expand Down
1 change: 1 addition & 0 deletions test/fixtures/wpt/encoding/textdecoder-ignorebom.any.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// META: global=window,dedicatedworker,shadowrealm
// META: title=Encoding API: TextDecoder ignoreBOM option

var cases = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// META: global=window,dedicatedworker,shadowrealm
// META: title=Encoding API: UTF-16 surrogate handling

var bad = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// META: global=window,dedicatedworker,shadowrealm
// META: title=Encoding API: USVString surrogate handling when encoding

var bad = [
Expand Down
2 changes: 1 addition & 1 deletion test/fixtures/wpt/versions.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
"path": "dom/events"
},
"encoding": {
"commit": "a58bbf6d8c0db1f1fd5352e846acb0754ee55567",
"commit": "5aa50dd4151b5bc1d04d5505366c6e27df30af5b",
"path": "encoding"
},
"fetch/data-urls/resources": {
Expand Down
6 changes: 6 additions & 0 deletions test/wpt/status/encoding.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,12 @@
"requires": ["full-icu"]
},
"encodeInto.any.js": {
"fail": {
"expected": [
"Invalid encodeInto() destination: Float16Array, backed by: ArrayBuffer",
"Invalid encodeInto() destination: Float16Array, backed by: SharedArrayBuffer"
]
},
"requires": ["small-icu"]
},
"textdecoder-copy.any.js": {
Expand Down
Loading