• exec/tests/global/interrupt_rearms.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sunday, April 12, 2026 22:51:13
    https://gitlab.synchro.net/main/sbbs/-/commit/20ec225e8f5dc36d462c0548
    Added Files:
    exec/tests/global/interrupt_rearms.js
    Log Message:
    Add test for JS interrupt callback re-arming

    Regression test for a bug in the SM128 JS_SetOperationCallback shim
    where the callback self-disabled after first firing, preventing
    js.time_limit from terminating tight loops.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sunday, April 12, 2026 23:07:15
    https://gitlab.synchro.net/main/sbbs/-/commit/687223f652312de930ac1fc8
    Modified Files:
    exec/tests/global/interrupt_rearms.js
    Log Message:
    Rework interrupt_rearms test to use js.counter observation

    The previous version set js.time_limit=1 expecting it to terminate
    a tight loop after 1 second, but time_limit is a callback-count
    limit (for infinite-loop detection), not a wall-clock timer. On
    test runners with low time_limit defaults, the test tripped the
    infinite-loop safeguard immediately.

    The new version disables auto_terminate, spins for ~1 second, and
    verifies js.counter advanced — the background trigger thread fires
    interrupts every ~100ms, so a working callback path produces several invocations. With the shim bug, only one ever fires.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    ï¿­ Synchronet ï¿­ Vertrauen ï¿­ Home of Synchronet ï¿­ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Sunday, April 12, 2026 23:24:58
    https://gitlab.synchro.net/main/sbbs/-/commit/8f1b73cd456b1c0d73076369
    Modified Files:
    exec/tests/global/interrupt_rearms.js
    Log Message:
    Skip interrupt_rearms test on pre-SM128 engines

    The shim bug the test guards against is SM128-specific. Under SM185
    the operation callback is driven by the engine's own bytecode counter
    (no background trigger thread), so a 1-second spin can legitimately
    produce only a single callback invocation — indistinguishable from
    the SM128 buggy state. Skip the test on older engines.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    ï¿­ Synchronet ï¿­ Vertrauen ï¿­ Home of Synchronet ï¿­ [vert/cvs/bbs].synchro.net