• xtrn/termtest/termtest.js

    From Deucе@1:103/705 to Git commit to main/sbbs/master on Sunday, September 22, 2024 15:18:27
    https://gitlab.synchro.net/main/sbbs/-/commit/fd3533d57a2a8bc72bdc821e
    Modified Files:
    xtrn/termtest/termtest.js
    Log Message:
    Send a backspace space backspace after shift in

    Keeps the display cleaner when things work and the shift in byte
    is displayed. Should be harmless in cases where shift in is
    interpreted per the standards.
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tuesday, September 24, 2024 16:09:51
    https://gitlab.synchro.net/main/sbbs/-/commit/6c65a57c505f99d6b60e19b6
    Modified Files:
    xtrn/termtest/termtest.js
    Log Message:
    Fix APC/SOS naming.

    Thanks Ree!
    --- SBBSecho 3.20-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Wednesday, April 02, 2025 10:26:50
    https://gitlab.synchro.net/main/sbbs/-/commit/370f7dde838b9c70f55c8a8a
    Modified Files:
    xtrn/termtest/termtest.js
    Log Message:
    Add test for background music as well

    This crashes SyncTERM on Win32 if it's the first ANSI music played
    --- SBBSecho 3.24-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Tuesday, September 23, 2025 19:12:19
    https://gitlab.synchro.net/main/sbbs/-/commit/cb8a0ad3bc57f7fc42c9cbde
    Modified Files:
    xtrn/termtest/termtest.js
    Log Message:
    Fix TAB tests

    Now that console.write() expands tabs, use console.putbyte(9); to
    send tab characters for tests.
    --- SBBSecho 3.29-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sunday, March 15, 2026 19:01:12
    https://gitlab.synchro.net/main/sbbs/-/commit/8a49c13c9d95faa6da93d003
    Modified Files:
    xtrn/termtest/termtest.js
    Log Message:
    Add input key sequence tests to termtest.js

    Regression tests for the keyboard escape sequences fixed in 8ce16dd88f.
    The test menu now offers Non-interactive, Interactive, Input, and All
    modes. Input mode prompts the user to press each special key and
    validates the received escape sequence against a table of known-valid
    sequences from SyncTERM (term.c), VT-220/XTerm (ansi_cio.c), and VT-52.

    Covers: arrows, Home/End/PgUp/PgDn/Ins/Del, Backspace, Backtab,
    F1-F12, Shift+F1-F12, Ctrl+F1-F12, and Alt+F1-F12 (minus Alt+F4).
    Unrecognized sequences are displayed in hex for debugging.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sunday, March 15, 2026 20:35:47
    https://gitlab.synchro.net/main/sbbs/-/commit/c6721f78fdc2143414321d8e
    Modified Files:
    xtrn/termtest/termtest.js
    Log Message:
    Add ANSI fuzz testing mode to termtest.js

    New 'Fuzz' option in the test menu sends intentionally malformed and
    edge-case ANSI sequences to stress-test terminal emulators. Runs
    indefinitely until the user presses a key or the terminal stops
    responding to cursor position reports.

    Five weighted fuzz categories:
    - Malformed CSI (weight 40): long params, many semicolons, huge values,
    invalid intermediates, random final bytes, private-mode garbage
    - Interrupted sequences (weight 25): ESC inside CSI, CAN/SUB mid-sequence,
    multiple bare ESCs, CSI interrupted by DCS
    - String sequences (weight 20): unterminated DCS/OSC/APC/PM/SOS, oversized
    strings, nested initiators, control chars in body
    - Boundary stress (weight 10): extreme cursor positions, inverted scroll
    regions, huge erase/insert counts, rapid scrolls
    - Random byte streams (weight 5): raw random bytes, random with resets,
    alternating valid/invalid sequences

    Each test case is logged with full hex dump to the BBS log so crashes
    can be reproduced. Liveness checked via DSR/CPR with a 3-second hard
    deadline. Terminal state reset (including string terminator) after each iteration. All loops guard bbs.online and js.terminated.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Deucе@1:103/705 to Git commit to main/sbbs/master on Sunday, March 15, 2026 22:51:38
    https://gitlab.synchro.net/main/sbbs/-/commit/b374321cedfaaadba5942c67
    Modified Files:
    xtrn/termtest/termtest.js
    Log Message:
    Ignore terminal responses in fuzz loop abort check

    When the fuzzer sends sequences that elicit terminal responses (e.g.
    DSR variants like ESC[...n), the response bytes land in the input
    buffer and get picked up by the abort-check console.inkey(), causing
    the fuzzer to exit prematurely thinking the user pressed a key.

    Now if the abort check reads ESC (0x1b), it recognizes this as a
    terminal response rather than user input, drains the rest of the
    sequence with a short timeout, and continues fuzzing. Only non-ESC
    characters are treated as user abort.

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)