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)