Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Dispatch enforces a **registration gate**: only CAP/PASS/NICK/USER/QUIT/PONG run

## Testing

Tests use Google Test but also feed every result into **PostMan** (`vendor/PostMan.cpp`), a styled Unicode-table reporter — `tests/test_main.cpp` bridges the two via a custom `TestEventListener`. `tests/Makefile` builds all of `src/` *except* `main.cpp` (linking `tier_full.cpp` as the one `registerExtensions` definition). Protocol-level suites share `tests/TestHarness.hpp` (TCP `TestClient` + `IrcServerTest` fixture; subclass and override `portBase()` per suite, `onServerReady()` to inject probe extensions). Test files: `test_message`, `test_client`, `test_channel`, `test_bot`, `test_integration`, `test_robustness`, `test_security`, `test_filetransfer`, `test_extensions`, `test_libcpp98`. ~149 tests (see PostMan table); PostMan's leak counter is atomic and `assertNoLeaks` takes `const char*` (a `std::string` argument would count itself as a leak — keep it that way).
Tests use Google Test but also feed every result into **PostMan** (`vendor/PostMan.cpp`), a styled Unicode-table reporter — `tests/test_main.cpp` bridges the two via a custom `TestEventListener`. `tests/Makefile` builds all of `src/` *except* `main.cpp` (linking `tier_full.cpp` as the one `registerExtensions` definition). Protocol-level suites share `tests/TestHarness.hpp` (TCP `TestClient` + `IrcServerTest` fixture; subclass and override `portBase()` per suite, `onServerReady()` to inject probe extensions). Test files: `test_message`, `test_client`, `test_channel`, `test_bot`, `test_integration`, `test_robustness`, `test_security`, `test_filetransfer`, `test_extensions`, `test_libcpp98`. ~155 product tests (reported as 456 PostMan assertions — 301 of those are PostManTruncationRegression's own self-checks, not IRC coverage); PostMan's leak counter is atomic and `assertNoLeaks` takes `const char*` (a `std::string` argument would count itself as a leak — keep it that way).

## Known traps

Expand Down Expand Up @@ -199,4 +199,5 @@ Tests use Google Test but also feed every result into **PostMan** (`vendor/PostM
there's no unconditional-rearm path to regress. The only external check
would be a CPU-usage assertion: flaky, threshold-arbitrary, rejected. Don't
add one; if you think idle-spin regressed, the bug would be in the
`_epollMask` sweep logic, testable directly — not via CPU sampling.
`_epollMask` sweep logic, testable directly — not via CPU sampling.
- **Known conformance gaps (audited, not fixed)**: the 005 CHANMODES token classifies +l in the wrong group (it takes a param on set, so it belongs in group C, not D), and 004 RPL_MYINFO advertises 'o' as a user mode. Both are cosmetic — HexChat parses neither strictly — and were left as-is (see the A1 conformance audit). Don't "fix" them without checking the audit's rationale.
4 changes: 1 addition & 3 deletions tests/COVERAGE.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,7 @@ FancyLogSink, shrinking the surface an evaluator can question.
(T3): the flush was removed, closing the last literal exception to
"poll before every send" in the kernel. Accepted regression: 464 /
welcome-burst no longer reach a client disconnected in the same tick
they were queued (see `CLAUDE.md` "Known traps"). Deferred-teardown
recovery (Option C) is tracked as future work (T4), out of this plan's
scope.
they were queued (see `CLAUDE.md` "Known traps"). Deferred-teardown recovery (Option C) — DONE (T4, merged): the 464 now reaches the client before close; "Server full" remains out of scope.

**P1 — scored / high-value robustness:**
3. ✅**Non-operator denial tests** (E) — the operator score is 0–5 and the sheet
Expand Down
Loading