TCP echo server

This commit is contained in:
Alexander Heldt
2025-11-11 20:36:55 +01:00
parent c76d1aaa53
commit 2af591489a
8 changed files with 199 additions and 50 deletions

View File

@@ -1,13 +1,38 @@
import gleam/list
import gleeunit
import simplifile
import tcp/echo_server
import tcp/tcp
pub fn main() -> Nil {
gleeunit.main()
}
// gleeunit test functions end in `_test`
pub fn hello_world_test() {
let name = "Joe"
let greeting = "Hello, " <> name <> "!"
pub fn foo_test() {
let socket_path = "/tmp/musicplayer-test.sock"
assert greeting == "Hello, Joe!"
let assert Ok(_) = echo_server.new(socket_path)
let assert Ok(socket) = tcp.connect(socket_path)
let messages = ["hello, ", "world!\n"]
list.each(messages, fn(message) {
let assert Ok(_) = tcp.send(socket, message)
})
// TODO not valid syntax?
// let assert Ok(Nil) = tcp.shutdown(socket)
//
// test: musicplayer_test.foo_test
// code: let assert Ok(Nil) = tcp.shutdown(socket)
// value: Ok
// info: Pattern match failed, no pattern matched the value.
let _ = tcp.shutdown(socket)
let timeout_ms = 100
assert Ok("hello, world!\n") == tcp.receive(socket, timeout_ms)
// TODO find better way to always do cleanup
simplifile.delete(socket_path)
}