<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mobius/hotline/client_test.go, branch main</title>
<subtitle>Friendship Quest remix of mobius, a hotline server in go #cli</subtitle>
<id>https://git.r.bdr.sh/mobius/atom/hotline/client_test.go?h=main</id>
<link rel='self' href='https://git.r.bdr.sh/mobius/atom/hotline/client_test.go?h=main'/>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/'/>
<updated>2026-07-10T16:48:18Z</updated>
<entry>
<title>Overhaul regression testing: e2e suite, fuzzing, CI, and bug fixes</title>
<updated>2026-07-10T16:48:18Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2026-07-10T16:48:18Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=21f24d24fd6f501b32f15a2bef41c89cc461f623'/>
<id>urn:sha1:21f24d24fd6f501b32f15a2bef41c89cc461f623</id>
<content type='text'>
Add a protocol-level end-to-end suite (in-process fully wired server on
an ephemeral port pair, driven by hotline.Client over TCP) covering
handshake, login, public and private chat, message board, threaded
news, file list/download/upload, account admin, disconnect
notification, and shutdown broadcast. The harness retries on a fresh
port pair when another process steals a probed port before
ListenAndServe binds it, and Server gains WithConnectionRateLimit so
tests can disable the per-IP connection throttle.

Add native fuzz tests for Transaction, Field, and flattened file
object decoding, and fix the bugs the new tests surfaced:

- Transaction.Write panicked on out-of-range attacker-controlled size
  fields, and transactionScanner's uint32 length addition could wrap
  and yield a truncated token. The information fork size declared in
  an untrusted fork header is now bounded too.
- Client keepalive read c.done unsynchronized while Disconnect
  replaces it under the mutex.
- The shared Agreement's Seek+ReadAll login path raced concurrent
  logins; the server now prefers an AgreementBytes() snapshot.

Fill unit-test gaps (main's config-copy helpers, file resume data,
ReloaderFunc, R2 error injection and env validation) and add a CI test
workflow (build/vet + race-enabled shuffled suite), fixed lint
workflow triggers with golangci-lint v2.6, and Makefile test/cover/
lint/fuzz targets.
</content>
</entry>
<entry>
<title>Improve test coverage for hotline and internal/mobius packages</title>
<updated>2026-03-16T18:46:04Z</updated>
<author>
<name>Jeff Halter</name>
<email>868228+jhalter@users.noreply.github.com</email>
</author>
<published>2026-03-16T18:46:04Z</published>
<link rel='alternate' type='text/html' href='https://git.r.bdr.sh/mobius/commit/?id=2f46f87177234070044b5304ca3e0db471699ad8'/>
<id>urn:sha1:2f46f87177234070044b5304ca3e0db471699ad8</id>
<content type='text'>
Add comprehensive test cases across both packages to increase coverage:
- hotline: 52.4% → ~55% (Disconnect, handleTransaction, SendAll,
  sendBanMessage, MemClientMgr, and other tests)
- internal/mobius: 75.9% → ~80% (HandleUpdateUser, HandleDeleteUser,
  HandleSetUser, HandleNewUser, HandleUserBroadcast success paths)
</content>
</entry>
</feed>
