Add Telnet regression test suite

This commit is contained in:
2026-09-17 13:33:45 +02:00
parent 5e6d9138c4
commit da967f4d56
6 changed files with 258 additions and 11 deletions
+19 -8
View File
@@ -47,18 +47,29 @@ The output and command fields provide additional actions through their context m
The protocol and session layers are intentionally separated so richer MUD functionality can be added without coupling it to the accessible interface.
Automated regression coverage now exercises the streaming Telnet parser and text pipeline, including negotiation, fragmented input, ANSI filtering, character decoding, and newline edge cases.
Planned work, roughly in order:
1. Add automated regression tests to the repository and exercise more Telnet edge cases.
2. Add MCCP2 compressed-stream support.
3. Add GMCP negotiation, bounded JSON parsing, typed package events, and an accessible inspector.
4. Add opt-in MSP sound and music with safe URL handling, limits, caching, and independent playback controls.
5. Add aliases, triggers, timers, optional transcripts, and configurable command shortcuts.
6. Add multiple simultaneous sessions with independent output and speech queues.
7. Add localization catalogs and package/signing automation for releases.
1. Add MCCP2 compressed-stream support.
2. Add GMCP negotiation, bounded JSON parsing, typed package events, and an accessible inspector.
3. Add opt-in MSP sound and music with safe URL handling, limits, caching, and independent playback controls.
4. Add aliases, triggers, timers, optional transcripts, and configurable command shortcuts.
5. Add multiple simultaneous sessions with independent output and speech queues.
6. Add localization catalogs and package/signing automation for releases.
## Running the tests
The suite uses no external gems. Run it with a standard Ruby installation:
```console
ruby test/run.rb
```
When developing inside Elten, load `test/run.rb` through the source program's evaluation context so the tests use Elten's bundled Ruby runtime.
## Development status
The current implementation has been checked with Elten's Ruby syntax checker and exercised with in-process protocol tests plus a loopback TCP server. Real MUDs differ considerably in their Telnet behavior, so interoperability reports and reproducible protocol captures are welcome.
The current implementation is checked with Elten's Ruby syntax checker and its automated in-process protocol suite, and has also been exercised with a loopback TCP server. Real MUDs differ considerably in their Telnet behavior, so interoperability reports and reproducible protocol captures are welcome.
The application UUID is `51a92051-84e0-415f-84e3-98f08a320a15` and must remain stable across releases.