HS: identify the '2 missing tests' as documented skips, not failures (1494/1494)
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 47s

Investigation of the long-standing 'why does the runner say 1494/1494 not
1496/1496?' question. The answer is in tests/hs-run-filtered.js:969 — two
tests are skipped via _SKIP_TESTS for documented architectural reasons:

  1. 'until event keyword works' — uses 'repeat until event click from #x',
     which suspends the OCaml kernel waiting for a click that is never
     dispatched from outside K.eval. The sync test runner has no way to
     fire the click while the kernel is suspended.

  2. 'throttled at <time> drops events within the window' — the HS parser
     does not implement the 'throttled at <ms>' modifier. The compiled SX
     for the handler is malformed: handler body is the literal symbol
     'throttled', the time expression dangles outside the closure as
     stray (do 200 ...). Genuinely needs parser+compiler+runtime work,
     not just a deadline bump.

Both are documented at the skip site with a comment explaining why they
can't run synchronously. The conformance number is 1494/1494 = 100% on
counted tests, with 2 explicit, justified skips out of 1496 total.

This was the source of the cumulative-vs-isolated test-count discrepancy.
Suite filter runs see them as 'not in this suite,' batched runs see them
as 'continued past'. Either way: not failures.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-07 20:06:54 +00:00
parent 21e6351657
commit 197c073308
2 changed files with 18 additions and 6 deletions

View File

@@ -963,8 +963,14 @@ for(let i=startTest;i<Math.min(endTest,testCount);i++){
// These tests hang indefinitely because io-wait-event suspends the OCaml kernel
// waiting for an event that is never fired from outside the K.eval call chain.
const _SKIP_TESTS = new Set([
// Async event dispatch not supported in the sync test runner — the
// 'repeat until event' loop suspends the OCaml kernel waiting for an
// event that is never fired from outside the K.eval call chain.
"until event keyword works",
// Generator gap: spec is missing click dispatches; asserts textContent="1" with no events fired.
// 'throttled at <time>' modifier not implemented — parser emits malformed
// SX (the throttle window expression dangles outside the handler closure).
// Implementing it requires parser support for the modifier syntax + a
// runtime hs-throttle! wrapper. Leaving as documented skip.
"throttled at <time> drops events within the window",
]);
if (_SKIP_TESTS.has(name)) continue;