diff options
| author | EuAndreh <eu@euandre.org> | 2026-04-24 16:49:22 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2026-04-24 16:49:22 -0300 |
| commit | 189fd0b8d97f4babc7c0a349842f7efa7fa8af0c (patch) | |
| tree | 6c409405c6d60bf2bcc1351aea6cb92482740ad5 /tests | |
| parent | m (diff) | |
| download | papod-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-x | tests/acceptance.sh | 1 |
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=$! |
