You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge TASK-076: replace tautological-pass blocks in TLS test lanes
Replaces ~25 LT_CHECK_EQ(1,1) tautologies in ws_start_stop.cpp with
LT_SKIP / LT_SKIP_IF (new littletest macros, Automake exit-77 semantics)
or typed std::exception catches that distinguish "config unsupported"
from "config broken". Adds tls-no-cli CI matrix lane and a regression
gate (lint-no-tautological-asserts) wired into make check-local.
Includes iter-1 review-cleanup fixes (test-quality-reviewer majors) and
28 persisted unworked findings.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: specs/tasks/M7-v2-cleanup/TASK-076.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,12 +8,12 @@
8
8
`ws_start_stop.cpp` carries ~20 `try { ws.start() } catch { LT_CHECK_EQ(1,1); return; }` blocks across SSL/mTLS/PSK/SNI sections, plus 5 more `if (!has_gnutls_cli()) { LT_CHECK_EQ(1,1); return; }` env-gates. On hosts without GnuTLS or `gnutls-cli`, the entire TLS suite reduces to `LT_CHECK_EQ(1,1)` passes — a build that silently lost TLS support would still report green. Replace these with a real fail-fast or skip mechanism that distinguishes "configuration not supported" from "configuration broken".
9
9
10
10
**Action Items:**
11
-
-[] Audit each `LT_CHECK_EQ(1,1)` at the lines listed in the audit (759, 789, 914, 949, 1016, 1051, 1091, 1129, 1171, 1212, 1266, 1367, 1486, 1512, 1537, 1552, 1599, 1642, 1685, 1728, plus env-gates at 1550, 1597, 1640, 1683, 1726).
12
-
-[] For each, classify:
13
-
- (a) Environment lacks TLS dependencies → use the littletest `LT_SKIP_IF(!has_gnutls(), "gnutls not available")` (or equivalent) macro that the runner reports as `SKIP`, not `PASS`. Add such a macro if littletest does not have one.
14
-
- (b) Environment supports TLS but a specific cipher/PSK config is rejected → assert specifically on that rejection rather than swallowing all exceptions; the test must distinguish "expected reject" from "implementation broken".
15
-
-[ ] Add a CI matrix lane that runs `ws_start_stop.cpp`on a host *with* GnuTLS + `gnutls-cli` and a separate lane that asserts the suite reports `SKIP` (not `PASS`) when they are absent.
16
-
-[ ]RELEASE_NOTES.md "Test infrastructure" note (if applicable) on the new skip semantics.
11
+
-[x] Audit each `LT_CHECK_EQ(1,1)` at the lines listed in the audit (759, 789, 914, 949, 1016, 1051, 1091, 1129, 1171, 1212, 1266, 1367, 1486, 1512, 1537, 1552, 1599, 1642, 1685, 1728, plus env-gates at 1550, 1597, 1640, 1683, 1726). The implementation grepped the full set at start-of-cycle and replaced all 33 matches (the plan audit covered 8 lines the original task enumeration omitted).
12
+
-[x] For each, classify:
13
+
- (a) Environment lacks TLS dependencies → emitted `LT_SKIP_IF(...)` via the new littletest macro (added to `test/littletest.hpp`). Runner reports `[SKIP]`, not `PASS`; a binary whose only outcomes are SKIPs exits 77 (Automake SKIP).
14
+
- (b) Environment supports TLS but a specific cipher/PSK config is rejected → typed catch on `std::exception` + substring-match on `is_psk_unsupported_error(e)` for SKIP, otherwise `throw;` so implementation-broken cases fail loudly.
15
+
-[x] Added a CI matrix lane (`build-type: tls-no-cli`) that runs `ws_start_stop.cpp` with`libgnutls28-dev` installed but `gnutls-bin` deliberately absent; the post-test verification step greps `test/ws_start_stop.log` for ≥5 `[SKIP]` markers (the five `psk_connection_*` tests) and zero `[CHECK/ASSERT FAILURE]` lines. A separate canary step on the baseline `classic` lane asserts those tests do NOT report SKIP when `gnutls-bin` is present.
16
+
-[x] Added RELEASE_NOTES.md "Test infrastructure" section documenting `LT_SKIP` / `LT_SKIP_IF` and the new exit-77 semantics.
17
17
18
18
**Dependencies:**
19
19
- Blocked by: None
@@ -30,4 +30,4 @@
30
30
**Related Requirements:** PRD §2 test reliability NFR
0 commit comments