aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rwxr-xr-xtest50
1 files changed, 50 insertions, 0 deletions
diff --git a/test b/test
new file mode 100755
index 0000000..2ba55b4
--- /dev/null
+++ b/test
@@ -0,0 +1,50 @@
+#!/usr/bin/expect -f
+# Very basic end-to-end testing for CI
+
+# Run the daemon to test against
+system ./xD --write-default-cfg
+spawn ./xD -d
+
+# 10 seconds is a bit too much
+set timeout 5
+
+spawn ./xC
+
+# Fuck this Tcl shit, I want the exit code
+expect_after {
+ eof {
+ puts ""
+ puts "Child exited prematurely"
+ exit 1
+ }
+}
+
+# Connect to the daemon
+send "/server add localhost\n"
+expect "]"
+send "/set servers.localhost.addresses = \"localhost\"\n"
+expect "Option changed"
+send "/disconnect\n"
+expect "]"
+send "/connect\n"
+expect "Connection established"
+
+# Try some chatting
+send "/join #test\n"
+expect "has joined"
+send "Hello\n"
+expect "Hello"
+
+# Attributes
+send "\x1bmbBold text! \x1bmc0,5And colors.\n"
+expect "]"
+
+# Try basic commands
+send "/set\n"
+expect "]"
+send "/help\n"
+expect "]"
+
+# Quit
+send "/quit\n"
+expect "Shutting down"