Skip to content

WPT encoding conformance tracking #400

Description

@github-actions

WPT encoding conformance — iconv-lite

Upstream web-platform-tests encoding/ run unmodified against iconv-lite (via a TextDecoder/TextEncoder shim), across Node LTS versions. Failures are real gaps vs the WHATWG Encoding Standard.

Node v22.23.2

iconv-lite 1.0.0-alpha.2 @ 2472166ea5a4

Test file ✓ pass ✗ fail
legacy-mb-schinese/gb18030/gb18030-decoder.any.html 36 239
single-byte-decoder.window.html 108 60
textdecoder-mistakes.any.html 31 56
textdecoder-arguments.any.html 0 4
textdecoder-labels.any.html 219 3
textdecoder-eof.any.html 0 2
textencoder-constructor-non-utf.any.html 77 2
api-basics.any.html 6
api-invalid-label.any.html 3421
api-surrogates-utf8.any.html 6
legacy-mb-schinese/gbk/gbk-decoder.any.html 82
textdecoder-byte-order-marks.any.html 3
textdecoder-fatal.any.html 36
textdecoder-ignorebom.any.html 4
textdecoder-utf16-surrogates.any.html 10
textencoder-utf16-surrogates.any.html 7
decode-compare: shift_jis 7787
decode-compare: euc-jp 13466
decode-compare: euc-kr 17048
decode-compare: big5 18590
Sample failing assertions

legacy-mb-schinese/gb18030/gb18030-decoder.any.html (239 failing)

  • gb18030 decoder: two bytes 0x81 0xFF
  • gb18030 decoder: two bytes 0xFE 0xFF
  • gb18030 decoder: two bytes 0x81 0x30
  • gb18030 decoder: three bytes 0x81 0x30 0xFE
  • gb18030 decoder: four bytes 0xFE 0x39 0xFE 0x39
  • gb18030 decoder: pointer 7458
  • gb18030 decoder: pointer 7459
  • gb18030 decoder: pointer 39419
  • gb18030 decoder: pointer 39420
  • gb18030 decoder: pointer 189999
  • gb18030 decoder: pointer 189000
  • gb18030 decoder: pointer 1237575
  • gb18030 decoder: pointer 1237576
  • gb18030 decoder: legacy ICU special case 1
  • gb18030 decoder: GB18030-2022 19
  • …and 224 more

single-byte-decoder.window.html (60 failing)

  • KOI8-U: koi8-u (TextDecoder): KOI8-U:174 — expected 1118, got 9565
  • macintosh: csmacintosh (TextDecoder): macintosh:189 — expected 937, got 8486
  • macintosh: mac (TextDecoder): macintosh:189 — expected 937, got 8486
  • macintosh: macintosh (TextDecoder): macintosh:189 — expected 937, got 8486
  • macintosh: x-mac-roman (TextDecoder): macintosh:189 — expected 937, got 8486
  • windows-874: dos-874 (TextDecoder): windows-874:129 — expected 129, got 65533
  • windows-874: iso-8859-11 (TextDecoder): windows-874:128 — expected 8364, got 128
  • windows-874: iso8859-11 (TextDecoder): windows-874:128 — expected 8364, got 128
  • windows-874: iso885911 (TextDecoder): windows-874:128 — expected 8364, got 128
  • windows-874: tis-620 (TextDecoder): windows-874:128 — expected 8364, got 65533
  • windows-874: windows-874 (TextDecoder): windows-874:129 — expected 129, got 65533
  • windows-1250: cp1250 (TextDecoder): windows-1250:129 — expected 129, got 65533
  • windows-1250: windows-1250 (TextDecoder): windows-1250:129 — expected 129, got 65533
  • windows-1250: x-cp1250 (TextDecoder): windows-1250:129 — expected 129, got 65533
  • windows-1251: cp1251 (TextDecoder): windows-1251:152 — expected 152, got 65533
  • …and 45 more

textdecoder-mistakes.any.html (56 failing)

  • Fast path misdetection: latin1
  • Fast path misdetection: ascii
  • windows-1252 maps bytes outside of latin1: windows-1252
  • windows-1252 maps bytes outside of latin1: latin1
  • windows-1252 maps bytes outside of latin1: ascii
  • windows-1252 does not contain unmapped chars: windows-1252
  • windows-1252 does not contain unmapped chars: ascii
  • specific: x-user-defined
  • specific: big5
  • selected single-byte: koi8-u
  • selected single-byte: windows-874
  • selected single-byte: windows-1252
  • selected single-byte: windows-1253
  • selected single-byte: windows-1255
  • selected single-byte: macintosh
  • …and 41 more

textdecoder-arguments.any.html (4 failing)

  • TextDecoder decode() with explicit undefined
  • TextDecoder decode() with undefined and undefined
  • TextDecoder decode() with undefined and options
  • TextDecoder decode() with array buffer detached during arg conversion

textdecoder-labels.any.html (3 failing)

  • csiso2022jp => ISO-2022-JP
  • iso-2022-jp => ISO-2022-JP
  • x-user-defined => x-user-defined

textdecoder-eof.any.html (2 failing)

  • TextDecoder end-of-queue handling
  • TextDecoder end-of-queue handling using stream: true

textencoder-constructor-non-utf.any.html (2 failing)

  • Encoding argument supported for decode: ISO-2022-JP
  • Encoding argument supported for decode: x-user-defined

366 failing assertion(s) across 7 file(s).

Node v24.19.0

iconv-lite 1.0.0-alpha.2 @ 2472166ea5a4

Test file ✓ pass ✗ fail
legacy-mb-schinese/gb18030/gb18030-decoder.any.html 36 239
single-byte-decoder.window.html 108 60
textdecoder-mistakes.any.html 31 56
textdecoder-arguments.any.html 0 4
textdecoder-labels.any.html 219 3
textdecoder-eof.any.html 0 2
textencoder-constructor-non-utf.any.html 77 2
api-basics.any.html 6
api-invalid-label.any.html 3421
api-surrogates-utf8.any.html 6
legacy-mb-schinese/gbk/gbk-decoder.any.html 82
textdecoder-byte-order-marks.any.html 3
textdecoder-fatal.any.html 36
textdecoder-ignorebom.any.html 4
textdecoder-utf16-surrogates.any.html 10
textencoder-utf16-surrogates.any.html 7
decode-compare: shift_jis 7787
decode-compare: euc-jp 13466
decode-compare: euc-kr 17048
decode-compare: big5 18590
Sample failing assertions

legacy-mb-schinese/gb18030/gb18030-decoder.any.html (239 failing)

  • gb18030 decoder: two bytes 0x81 0xFF
  • gb18030 decoder: two bytes 0xFE 0xFF
  • gb18030 decoder: two bytes 0x81 0x30
  • gb18030 decoder: three bytes 0x81 0x30 0xFE
  • gb18030 decoder: four bytes 0xFE 0x39 0xFE 0x39
  • gb18030 decoder: pointer 7458
  • gb18030 decoder: pointer 7459
  • gb18030 decoder: pointer 39419
  • gb18030 decoder: pointer 39420
  • gb18030 decoder: pointer 189999
  • gb18030 decoder: pointer 189000
  • gb18030 decoder: pointer 1237575
  • gb18030 decoder: pointer 1237576
  • gb18030 decoder: legacy ICU special case 1
  • gb18030 decoder: GB18030-2022 19
  • …and 224 more

single-byte-decoder.window.html (60 failing)

  • KOI8-U: koi8-u (TextDecoder): KOI8-U:174 — expected 1118, got 9565
  • macintosh: csmacintosh (TextDecoder): macintosh:189 — expected 937, got 8486
  • macintosh: mac (TextDecoder): macintosh:189 — expected 937, got 8486
  • macintosh: macintosh (TextDecoder): macintosh:189 — expected 937, got 8486
  • macintosh: x-mac-roman (TextDecoder): macintosh:189 — expected 937, got 8486
  • windows-874: dos-874 (TextDecoder): windows-874:129 — expected 129, got 65533
  • windows-874: iso-8859-11 (TextDecoder): windows-874:128 — expected 8364, got 128
  • windows-874: iso8859-11 (TextDecoder): windows-874:128 — expected 8364, got 128
  • windows-874: iso885911 (TextDecoder): windows-874:128 — expected 8364, got 128
  • windows-874: tis-620 (TextDecoder): windows-874:128 — expected 8364, got 65533
  • windows-874: windows-874 (TextDecoder): windows-874:129 — expected 129, got 65533
  • windows-1250: cp1250 (TextDecoder): windows-1250:129 — expected 129, got 65533
  • windows-1250: windows-1250 (TextDecoder): windows-1250:129 — expected 129, got 65533
  • windows-1250: x-cp1250 (TextDecoder): windows-1250:129 — expected 129, got 65533
  • windows-1251: cp1251 (TextDecoder): windows-1251:152 — expected 152, got 65533
  • …and 45 more

textdecoder-mistakes.any.html (56 failing)

  • Fast path misdetection: latin1
  • Fast path misdetection: ascii
  • windows-1252 maps bytes outside of latin1: windows-1252
  • windows-1252 maps bytes outside of latin1: latin1
  • windows-1252 maps bytes outside of latin1: ascii
  • windows-1252 does not contain unmapped chars: windows-1252
  • windows-1252 does not contain unmapped chars: ascii
  • specific: x-user-defined
  • specific: big5
  • selected single-byte: koi8-u
  • selected single-byte: windows-874
  • selected single-byte: windows-1252
  • selected single-byte: windows-1253
  • selected single-byte: windows-1255
  • selected single-byte: macintosh
  • …and 41 more

textdecoder-arguments.any.html (4 failing)

  • TextDecoder decode() with explicit undefined
  • TextDecoder decode() with undefined and undefined
  • TextDecoder decode() with undefined and options
  • TextDecoder decode() with array buffer detached during arg conversion

textdecoder-labels.any.html (3 failing)

  • csiso2022jp => ISO-2022-JP
  • iso-2022-jp => ISO-2022-JP
  • x-user-defined => x-user-defined

textdecoder-eof.any.html (2 failing)

  • TextDecoder end-of-queue handling
  • TextDecoder end-of-queue handling using stream: true

textencoder-constructor-non-utf.any.html (2 failing)

  • Encoding argument supported for decode: ISO-2022-JP
  • Encoding argument supported for decode: x-user-defined

366 failing assertion(s) across 7 file(s).


Generated by test/wpt/report.js.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions