Skip to content

Improve interpreter spec test coverage #8261

Description

@stevenfontanella

Failing spec tests as of November:

test/spec/

  • const.wast,
  • linking.wast,
  • unreached-invalid.wast,
  • elem.wast,

test/spec/threads (to be upstreamed into testsuite from the threads repo), ported in #8418.

  • atomic.wast
  • deeply_nested.wast
  • LB_atomic.wast
  • LB.wast
  • MP_atomic.wast
  • MP.wast
  • nested.wast
  • SB_atomic.wast
  • SB.wast
  • simple.wast
  • thread.wast
  • unlinkable.wast
  • wait_notify.wast

test/spec/testsuite/

  • address.wast, # 64-bit offset allowed by memory64
  • array_new_elem.wast, # Failure to parse element segment item abbreviation
  • binary.wast, # Missing data count section validation
  • call_indirect64.wast, # Failure to parse element segment abbreviation
  • comments.wast, # Issue with carriage returns being treated as newlines
  • const.wast, # Hex float constant not recognized as out of range
  • conversions.wast, # Promoted NaN should be canonical
  • data.wast, # Fail to parse data segment offset abbreviation
  • elem.wast, # Requires modeling empty declarative segments
  • f32.wast, # Adding -0 and -nan should give a canonical NaN
  • f64.wast, # Adding -0 and -nan should give a canonical NaN
  • float_exprs.wast, # Adding 0 and NaN should give canonical NaN
  • float_misc.wast, # Rounding wrong on f64.sqrt
  • func.wast, # Duplicate parameter names not properly rejected
  • global.wast, # Fail to parse table
  • if.wast, # Requires more precise unreachable validation
  • imports.wast, # Missing validation of missing function on instantiation
  • proposals/threads/imports.wast, # Missing memory type validation on instantiation
  • linking.wast, # Missing function type validation on instantiation
  • memory.wast, # Requires wast module definition support
  • proposals/threads/memory.wast, # Missing memory type validation on instantiation
  • memory64-imports.wast, # Missing validation on instantiation
  • annotations.wast, # String annotations IDs should be allowed
  • id.wast, # Empty IDs should be disallowed
  • instance.wast, # Requires wast module definition support
  • table64.wast, # Requires wast module definition support
  • table_grow.wast, # Incorrect table linking semantics in interpreter
  • tag.wast, # Non-empty tag results allowed by stack switching
  • try_table.wast, # Requires try_table interpretation
  • local_init.wast, # Requires local validation to respect unnamed blocks
  • ref_func.wast, # Requires rejecting undeclared functions references
  • ref_is_null.wast, # Requires ref.null wast constants
  • ref_null.wast, # Requires ref.null wast constants
  • return_call_indirect.wast, # Requires more precise unreachable validation
  • select.wast, # Requires ref.null wast constants
  • table.wast, # Requires support for table default elements
  • unreached-invalid.wast, # Requires more precise unreachable validation
  • array.wast, # Requires support for table default elements
  • br_if.wast, # Requires more precise branch validation
  • br_on_cast.wast, # Requires host references to not be externalized i31refs
  • br_on_cast_fail.wast, # Requires host references to not be externalized i31refs
  • extern.wast, # Requires ref.host wast constants
  • i31.wast, # Requires support for table default elements
  • ref_cast.wast, # Requires host references to not be externalized i31refs
  • ref_test.wast, # Requires host references to not be externalized i31refs
  • struct.wast, # Duplicate field names not properly rejected
  • type-rec.wast, # Missing function type validation on instantiation
  • type-subtyping.wast, # ShellExternalInterface::callTable does not handle subtyping
  • call_indirect.wast, # Bug with 64-bit inline element segment parsing
  • memory64.wast, # Requires wast module definition support
  • imports0.wast, # Missing memory type validation on instantiation
  • imports2.wast, # Missing memory type validation on instantiation
  • imports3.wast, # Missing memory type validation on instantiation
  • linking0.wast, # Missing memory type validation on instantiation
  • linking3.wast, # Fatal error on missing table.
  • i16x8_relaxed_q15mulr_s.wast, # Requires wast either support
  • i32x4_relaxed_trunc.wast, # Requires wast either support
  • i8x16_relaxed_swizzle.wast, # Requires wast either support
  • relaxed_dot_product.wast, # Requires wast either support
  • relaxed_laneselect.wast, # Requires wast either support
  • relaxed_madd_nmadd.wast, # Requires wast either support
  • relaxed_min_max.wast, # Requires wast either support
  • simd_const.wast, # Hex float constant not recognized as out of range
  • simd_conversions.wast, # Promoted NaN should be canonical
  • simd_f32x4.wast, # Min of 0 and NaN should give a canonical NaN
  • simd_f32x4_arith.wast, # Adding inf and -inf should give a canonical NaN
  • simd_f32x4_rounding.wast, # Ceil of NaN should give a canonical NaN
  • simd_f64x2.wast, # Min of 0 and NaN should give a canonical NaN
  • simd_f64x2_arith.wast, # Adding inf and -inf should give a canonical NaN
  • simd_f64x2_rounding.wast, # Ceil of NaN should give a canonical NaN
  • simd_i32x4_cmp.wast, # UBSan error on integer overflow
  • simd_i32x4_arith2.wast, # UBSan error on integer overflow
  • simd_i32x4_dot_i16x8.wast, # UBSan error on integer overflow
  • token.wast, # Lexer should require spaces between strings and non-paren tokens

Activity

  1. stevenfontanella commented on Feb 3, 2026

    @stevenfontanella
    MemberAuthor

    ref_null.wast fixed by #8076 (and partially fixed ref_is_null.wast and select.wast)

  2. stevenfontanella commented on Feb 3, 2026

    @stevenfontanella
    MemberAuthor

    memory.wast fixed by #8058 (and partially fixed instance.wast, table64.wast, and memory64.wast)

  3. stevenfontanella commented on Feb 3, 2026

    @stevenfontanella
    MemberAuthor

    imports0, imports2, linking0, and linking3 fixed by #8086 (and partially fixed imports, imports3 and memory64)

  4. stevenfontanella commented on Feb 3, 2026

    @stevenfontanella
    MemberAuthor

    table_grow.wast fixed by #8222

  5. stevenfontanella commented on Feb 3, 2026

    @stevenfontanella
    MemberAuthor

    address.wast, try_table.wast, call_indirect.wast, and i32x4_relaxed_trunc.wast fixed by #8233

  6. linked a pull request that will close this issueEnable spec tests that already pass #8233on Feb 3, 2026
  7. stevenfontanella commented on Feb 3, 2026

    @stevenfontanella
    MemberAuthor

    simd_i32x4_cmp.wast, simd_i32x4_arith2.wast, and simd_i32x4_dot_i16x8.wast fixed by #8234.

  8. 22 remaining items

  9. stevenfontanella commented on Mar 18, 2026

    @stevenfontanella
    MemberAuthor

    type-rec.wast and type-subtyping.wast fixed by #8478. Partially fixed linking.wast.

  10. added a commit that references this issue on Mar 25, 2026
  11. stevenfontanella commented on Mar 25, 2026

    @stevenfontanella
    MemberAuthor

    linking.wast partially fixed by #8487.

  12. stevenfontanella commented on Mar 25, 2026

    @stevenfontanella
    MemberAuthor

    linking.wast fixed by #8489.

  13. stevenfontanella commented on Mar 26, 2026

    @stevenfontanella
    MemberAuthor

    global.wast, instance.wast, ref_is_null.wast, table.wast, i31.wast fixed by #8405.

  14. stevenfontanella commented on Mar 26, 2026

    @stevenfontanella
    MemberAuthor

    conversions.wast fixed by #8528 / #8472.

  15. rathann commented on Apr 20, 2026

    @rathann
    Contributor

    conversions.wast fixed by #8528 / #8472.

    But they started failing on ppc64le: #8626 .

  16. stevenfontanella commented on Apr 27, 2026

    @stevenfontanella
    MemberAuthor

    conversions.wast fixed by #8528 / #8472.

    But they started failing on ppc64le: #8626 .

    Fixed by #8645.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

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