summaryrefslogtreecommitdiff
path: root/test/web/serial.py
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-14 14:28:15 -0300
committerGabriel Schneider <[email protected]>2026-09-16 11:18:48 -0300
commitae310a207534b33b7321dd2b9f423a73b1969159 (patch)
treeb4c2e85091a4ff6657e0a04ba1b2ef030d588ac8 /test/web/serial.py
parent5f24c4a2284a0af84fb9d116f7a39f6a58e42ae9 (diff)
downloadcloud9-ae310a207534b33b7321dd2b9f423a73b1969159.tar.gz
cloud9-ae310a207534b33b7321dd2b9f423a73b1969159.zip
Add reusable HTTP transport, serial gateway, and WASM file browser
Diffstat (limited to 'test/web/serial.py')
-rw-r--r--test/web/serial.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/web/serial.py b/test/web/serial.py
new file mode 100644
index 0000000..83833a4
--- /dev/null
+++ b/test/web/serial.py
@@ -0,0 +1,25 @@
+"""Raw PTY to local reference server: exercise a UART-like byte stream."""
+import os
+import pty
+import select
+import socket
+import sys
+import tty
+
+master, slave = pty.openpty()
+tty.setraw(slave)
+host, port = sys.argv[1].split(":")
+peer = socket.create_connection((host, int(port)))
+print(os.ttyname(slave), flush=True)
+while True:
+ ready, _, _ = select.select([master, peer], [], [])
+ for source in ready:
+ data = os.read(master, 19) if source == master else peer.recv(23)
+ if not data:
+ sys.exit(0)
+ if source == master:
+ peer.sendall(data)
+ else:
+ while data:
+ written = os.write(master, data)
+ data = data[written:]