• src/syncterm/run_termtest.sh termtest.csrc/syncterm/CMakeLists.txt GNU

    From Deucе@VERT to Git commit to main/sbbs/master on Tue Mar 17 22:37:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/b1aef46a981bceb260b745a5
    Added Files:
    src/syncterm/run_termtest.sh termtest.c
    Modified Files:
    src/syncterm/CMakeLists.txt GNUmakefile
    Log Message:
    Add automated terminal test suite (99 tests)

    termtest.c: standalone C test harness that runs as the child process
    of a SyncTERM shell: connection via PTY. Sends escape sequences,
    reads terminal responses, writes results to a file.

    99 tests covering: C0/escape controls, string passthrough, cursor
    movement, clamping, editing, tabs, save/restore, device queries
    (DSR, DA, DECRQCRA, DECTABSR, DECRQSS, DECMSR), scroll regions,
    scrolling, SGR attributes (256-color, RGB, bright, negative,
    conceal), modes (autowrap, nowrap, origin, BCDM), DECRQM for
    private/ANSI/CTerm modes, palette queries (OSC 4, OSC 104),
    cursor style (DECRQSS SP q), screen readback (STS text-only,
    full line, no SSA, with SGR, ANSI mode discovery), and SyncTERM
    extensions (DECDMAC, DECINVM, CTSV).

    check_string_at() uses both DECRQCRA checksums and STS readback
    for dual verification of content and attributes.

    run_termtest.sh: wrapper script that sets up headless SDL
    (offscreen + software renderer), launches SyncTERM, checks results.

    Build integration:
    - gmake: 'gmake test' and 'gmake termtest' targets
    - cmake: enable_testing(), add_test() with ctest support

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net