MusKitty — WPT 合规度实测报告 全仓库 WPT 套件 · 生成于 2026-09-25 11:27:36 UTC

数据来自各 crate 本地 `cargo test -- --nocapture` 实跑输出(harness 直接解析)。总体通过率 99.83%(9594/9610 通过,失败 16,跳过 14)。

套件总览

99.9%
1923 / 1924
muskitty-html5-parser
WPT html/syntax/parsing (html5lib tree-construction)
99.8%
7022 / 7036
muskitty-html5-tokenizer
html5lib tokenizer (WPT mirror, same source)
99.8%
507 / 508
muskitty-selectors
WPT css/selectors/parsing (22 files)
100.0%
99 / 99
muskitty-css-tokenizer
WPT css/css-syntax (tokenizer layer)
100.0%
27 / 27
muskitty-css-parser
WPT css/css-syntax (parser layer)
100.0%
16 / 16
muskitty-css-values
WPT css/css-syntax (numeric grammar)

总体

通过失败跳过总计通过率
95941614961099.83%

muskitty-html5-parser

WPT html/syntax/parsing (html5lib tree-construction)

通过率 99.9% (1923/1924),失败 1,跳过 14
夹具 / fixturepassfailskiptotal
adoption01.dat180018
adoption02.dat4004
blocks.dat480048
comments01.dat160016
doctype01.dat370037
domjs-unsafe.dat490049
entities01.dat750075
entities02.dat260026
foreign-fragment.dat660066
html5test-com.dat300030
inbody01.dat4004
isindex.dat4004
main-element.dat3003
math.dat8008
menuitem-element.dat200020
namespace-sensitivity.dat1001
noscript01.dat180018
pending-spec-changes-plain-text-unsafe.dat1001
pending-spec-changes.dat3003
plain-text-unsafe.dat410041
processing-instructions.dat12400124
quirks01.dat4004
ruby.dat210021
scriptdata01.dat260026
scripted_adoption01.dat0011
scripted_ark.dat0011
scripted_foster01.dat0022
scripted_webkit01.dat0022
search-element.dat3003
svg.dat8008
tables01.dat190019
template.dat11300113
tests1.dat11200112
tests10.dat540054
tests11.dat130013
tests12.dat2002
tests14.dat7007
tests15.dat140014
tests16.dat19106197
tests17.dat130013
tests18.dat360036
tests19.dat10300103
tests2.dat630063
tests20.dat640064
tests21.dat230023
tests22.dat5005
tests23.dat5005
tests24.dat8008
tests25.dat260026
tests26.dat200020
tests3.dat240024
tests4.dat9009
tests5.dat160117
tests6.dat520052
tests7.dat340034
tests8.dat100010
tests9.dat270027
tests_innerHTML_1.dat801081
tricky01.dat9009
void-in-phrasing.dat130013
webkit01.dat520052
webkit02.dat480149
失败明细(1)
[tests_innerHTML_1.dat #76] input: <input><option>
  diff:
      input:    "<input><option>"
      expected:
        | <option>
      actual:
        | <input>
        | <option>

── skip reasons ──
      14  script-on (scripting flag not implemented)

muskitty-html5-tokenizer

html5lib tokenizer (WPT mirror, same source)

通过率 99.8% (7022/7036),失败 14,跳过 0
夹具 / fixturepassfailtotal
contentModelFlags.test24024
domjs.test59059
entities.test80080
escapeFlag.test909
namedEntities.test421004210
numericEntities.test3360336
pendingSpecChanges.test101
test1.test69069
test2.test43245
test3.test177791786
test4.test85085
unicodeChars.test3230323
unicodeCharsProblematic.test505
xmlViolation.test134
失败明细(14)
[test2.test] Simili processing instruction
  initial state: Data state
      input:    "<?namespace>"
      expected: [
    Comment(
        "?namespace",
    ),
]
      actual:   []

[test2.test] A bogus comment stops at >, even if preceded by two dashes
  initial state: Data state
      input:    "<?foo-->"
      expected: [
    Comment(
        "?foo--",
    ),
]
      actual:   []

[test3.test] <?
  initial state: Data state
      input:    "<?"
      expected: [
    Comment(
        "?",
    ),
]
      actual:   []

[test3.test] <?A
  initial state: Data state
      input:    "<?A"
      expected: [
    Comment(
        "?A",
    ),
]
      actual:   []

[test3.test] <?B
  initial state: Data state
      input:    "<?B"
      expected: [
    Comment(
        "?B",
    ),
]
      actual:   []

[test3.test] <?Y
  initial state: Data state
      input:    "<?Y"
      expected: [
    Comment(
        "?Y",
    ),
]
      actual:   []

[test3.test] <?Z
  initial state: Data state
      input:    "<?Z"
      expected: [
    Comment(
        "?Z",
    ),
]
      actual:   []

[xmlViolation.test] Non-XML character
  initial state: Data state
      input:    "a\u{ffff}b"
      expected: [
    Character(
        "a�b",
    ),
]
      actual:   [
    Character(
        "a\u{ffff}b",
    ),
]

[xmlViolation.test] Non-XML space
  initial state: Data state
      input:    "a\u{c}b"
      expected: [
    Character(
        "a b",
    ),
]
      actual:   [
    Character(
        "a\u{c}b",
    ),
]

[xmlViolation.test] Double hyphen in comment
  initial state: Data state
      input:    "<!-- foo -- bar -->"
      expected: [
    Comment(
        " foo - - bar ",
    ),
]
      actual:   [
    Comment(
        " foo -- bar ",
    ),
]

muskitty-selectors

WPT css/selectors/parsing (22 files)

通过率 99.8% (507/508),失败 1,跳过 0
夹具 / fixturepassfailtotal
css-syntax-anb-parsing.json67067
css-syntax-escaped-eof-selector.json202
css-syntax-ident-three-code-points.json808
css-syntax-inclusive-ranges-ident.json28028
invalid-pseudos.json12012
parse-anplusb.json1120112
parse-attribute.json16016
parse-child.json202
parse-class.json404
parse-descendant.json303
parse-focus-visible.json303
parse-has-disallow-nesting-has-inside-has.json101
parse-has-forgiving-selector.json303
parse-has-slotted.tentative.json22123
parse-has.json29029
parse-heading.json28028
parse-id.json303
parse-is-where.json45045
parse-is.json606
parse-not.json26026
parse-part.json32032
parse-sibling.json303
parse-slotted.json19019
parse-state.json24024
parse-universal.json303
parse-where.json606
失败明细(1)
[parse-has-slotted.tentative.html] ":has-slotted(div + div)" (valid)  expected valid, got error: UnexpectedToken("expected ')' to close :has-slotted(...), got Delim('+')")

muskitty-css-tokenizer

WPT css/css-syntax (tokenizer layer)

通过率 100.0% (99/99),失败 0,跳过 0
夹具 / fixturepassfailtotal
cdc-vs-ident-tokens.json202
escaped-eof.json404
input-preprocessing.json505
non-ascii-codepoints.json55055
unclosed-url-at-eof.json202
whitespace.json31031

全部通过 — 无失败样本。

muskitty-css-parser

WPT css/css-syntax (parser layer)

通过率 100.0% (27/27),失败 0,跳过 0
夹具 / fixturepassfailtotal
at-rule-in-declaration-list.json606
charset-is-not-a-rule.json101
custom-property-rule-ambiguity.json202
trailing-braces.json101
url-whitespace-consumption.json303
var-with-blocks.json14014

全部通过 — 无失败样本。

muskitty-css-values

WPT css/css-syntax (numeric grammar)

通过率 100.0% (16/16),失败 0,跳过 0
夹具 / fixturepassfailtotal

全部通过 — 无失败样本。