Test that unknown telnet commands are filtered
authorJeremy Stanley <fungi@yuggoth.org>
Sun, 21 Jan 2018 23:41:46 +0000 (23:41 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Sun, 21 Jan 2018 23:41:46 +0000 (23:41 +0000)
Using the recently added support for injecting raw bytes into the
client socket in self tests, send a made-up IAC sequence which the
server won't recognize as a valid telnet command and make sure that
it gets properly logged and filtered out of the input sequence while
preserving the remaining input.

mudpy/tests/selftest.py

index 766f01d..06cdbab 100644 (file)
@@ -151,6 +151,13 @@ test_telnet_iac = (
     (2, r"Non-UTF-8 sequence from admin: b'say argle\\xffbargle'.*> ", ""),
 )
 
+test_telnet_unknown = (
+    # Send an unsupported negotiation command #127 which should get filtered
+    # from the line of input
+    (2, "> ", b"say glop\xff\x7fglyf\r\n"),
+    (2, r'Unknown Telnet IAC command 127 ignored\..*"Glopglyf\.".*> ', ""),
+)
+
 test_admin_restriction = (
     (0, "> ", "help halt"),
     (0, r"That is not an available command\.", "halt"),
@@ -250,6 +257,7 @@ dialogue = (
     (test_account1_teardown, "second account teardown"),
     (test_admin_setup, "admin account setup"),
     (test_telnet_iac, "escape stray telnet iac bytes"),
+    (test_telnet_unknown, "strip unknown telnet command"),
     (test_admin_restriction, "restricted admin commands"),
     (test_admin_help, "admin help"),
     (test_reload, "reload"),