summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2026-04-24 16:49:22 -0300
committerEuAndreh <eu@euandre.org>2026-04-24 16:49:22 -0300
commit189fd0b8d97f4babc7c0a349842f7efa7fa8af0c (patch)
tree6c409405c6d60bf2bcc1351aea6cb92482740ad5 /tests
parentm (diff)
downloadpapod-189fd0b8d97f4babc7c0a349842f7efa7fa8af0c.tar.gz
papod-189fd0b8d97f4babc7c0a349842f7efa7fa8af0c.tar.xz
Implement MODE, WHO, TOPIC, KICK, NAMES, LIST; fix test hangs
IRC commands: - MODE: return RPL_UMODEIS (221) for user mode queries, RPL_CHANNELMODEIS (324) + RPL_CREATIONTIME (329) for channel mode queries - WHO: return RPL_WHOREPLY (352) + RPL_ENDOFWHO (315) for channels and nicks - TOPIC: query returns RPL_TOPIC (332) or RPL_NOTOPIC (331); set broadcasts to all channel members - KICK: removes target from channel, notifies all members - NAMES: returns RPL_NAMREPLY (353) + RPL_ENDOFNAMES (366) - LIST: returns RPL_LISTEND (323) Test infrastructure: - Ghost stale connections on pre-registration nick collision: when a new client sends NICK during registration and the nick is held by an existing connection, close the old connection. This prevents irctest hangs where setUp() raises SkipTest without calling tearDown(), leaving ghost connections. - Add PAPOD_IDLE_TIMEOUT env var with SO_TIMEOUT on client sockets (default 5min, acceptance tests use 1.5s) - Store socket reference in client atom for ghost detection Full irctest suite now completes without hanging: 167 passed, 576 failed, 197 skipped (up from 127 with hangs). Unit: 207 assertions, Integration: 21 assertions — all pass.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/acceptance.sh1
1 files changed, 1 insertions, 0 deletions
diff --git a/tests/acceptance.sh b/tests/acceptance.sh
index 725bd65..b7d8ea0 100755
--- a/tests/acceptance.sh
+++ b/tests/acceptance.sh
@@ -18,6 +18,7 @@ trap cleanup EXIT
PAPOD_TCP_PORT="$PORT" \
PAPOD_SERVER_NAME=My.Little.Server \
+PAPOD_IDLE_TIMEOUT=1500 \
java -client -cp "$CLASSPATH" papod 2>/dev/null &
PAPOD_PID=$!