Audit the 14-task plan from 2026-04-09 against the actual test tree on
ProtocolX-rebased and record the result inline.
Findings:
- Tasks 1-8, 10-14: every Tier-1 / Tier-2 / Tier-3 target file exists
with a plan() at or above the assertion budget the plan called for.
Tasks 5, 6, 8, 12 went well beyond their targets through interim
expansion work; the others land exactly on plan.
- Task 9 is obsolete: test_mysqlx_listener_smoke-t.cpp was deleted in
98aee7db2 together with the dormant MysqlxWorker path it exercised.
Listener-lifecycle coverage is now provided by mysqlx_thread_unit-t
and mysqlx_robustness_unit-t, which exist in the same tree but were
not in scope when this plan was written.
- 17 additional mysqlx/plugin unit-test files have landed beyond the
plan, including the new mysqlx_compression_unit-t covering Phase 1-3
of the X Protocol compression work (zstd_stream + lz4_message
capability negotiation, decompression with anti-bomb 16 MiB cap, and
outbound batched compression). The plan does not enumerate these
because they post-date it.
Concretely this commit:
- adds a "Reconciliation audit (2026-04-19)" section near the top with
a per-task target/actual/status table and a pointer to the obsoleted
task,
- flips all 14 task-level "**Commit**:" checkboxes from [ ] to [x],
- prepends an "(OBSOLETE)" tag and explanatory note to Task 9 so that
anyone re-reading the plan understands why its sub-checkboxes are
intentionally left unchecked.
No code changes — this is purely a plan-status update so the plan is
no longer misleading about what's left to do on the testing front.
All 14 tasks reconciled against the actual test tree on `ProtocolX-rebased`. Every Tier-1 / Tier-2 task hit or exceeded its assertion target; both Tier-3 e2e tests landed; one task is obsolete because its target file was deleted with the dormant MysqlxWorker path.
Total tracked assertions across the 13 in-scope files: **485** vs the plan's 307 target (Task 9 dropped). Beyond the plan, the branch also carries 17 additional mysqlx/plugin unit-test files that did not exist when the plan was written (e.g. `mysqlx_compression_unit-t` from the Phase 1–3 X Protocol compression work, `mysqlx_session_unit-t`, `mysqlx_thread_unit-t`, `mysqlx_robustness_unit-t`, `mysqlx_tls_unit-t`, `plugin_lifecycle_unit-t`, `plugin_dispatch_unit-t`, `plugin_query_hook_unit-t`, `plugin_prometheus_unit-t`, `mysqlx_credential_verify_unit-t`, `mysqlx_backend_auth_unit-t`, `mysqlx_admin_commands_unit-t`, `mysqlx_admin_disk_commands_unit-t`, `mysqlx_data_stream_unit-t`, `mysqlx_connection_unit-t`, `mysqlx_concurrent_unit-t`, `mysqlx_message_dispatch_unit-t`).
No new test work is required by this plan. Task-level commit checkboxes below are marked done; the per-assertion checkboxes are not individually flipped because the assertion budgets are met or exceeded by the existing implementations.
---
## Testing Matrix
### Tier 1: Pure Unit Tests (no DB, no globals, no I/O)
@ -112,7 +139,7 @@ Note: For send_error/send_ok tests, use `socketpair(AF_UNIX, SOCK_STREAM, 0, fds
Plan: `plan(42)`
- [] **Commit**: `test: expand mysqlx protocol unit tests to 42 assertions`
- [x] **Commit**: `test: expand mysqlx protocol unit tests to 42 assertions`
---
@ -149,7 +176,7 @@ Plan: `plan(42)`
Plan: `plan(22)`
- [] **Commit**: `test: expand mysqlx stats unit tests to 22 assertions`
- [x] **Commit**: `test: expand mysqlx stats unit tests to 22 assertions`
---
@ -204,7 +231,7 @@ Plan: `plan(25)`
Build: Same pattern as `mysqlx_config_store_unit-t` — compiles `mysqlx_config_store.cpp` directly with the test harness.
- [] **Commit**: `test: add mysqlx config store pure unit tests (25 assertions)`
- [x] **Commit**: `test: add mysqlx config store pure unit tests (25 assertions)`
---
@ -250,7 +277,7 @@ Build: Same pattern as `mysqlx_config_store_unit-t` — compiles `mysqlx_config_
Plan: `plan(26)`
- [] **Commit**: `test: expand mysqlx route store unit tests to 26 assertions`
- [x] **Commit**: `test: expand mysqlx route store unit tests to 26 assertions`
---
@ -282,7 +309,7 @@ Plan: `plan(26)`
Plan: `plan(20)`
- [] **Commit**: `test: expand plugin manager unit tests to 20 assertions`
- [x] **Commit**: `test: expand plugin manager unit tests to 20 assertions`
---
@ -314,7 +341,7 @@ Plan: `plan(20)`
Plan: `plan(25)`
- [] **Commit**: `test: expand plugin registry unit tests to 25 assertions`
- [x] **Commit**: `test: expand plugin registry unit tests to 25 assertions`
> **Obsolete:** the smoke test was deleted in commit `98aee7db2` together with the dormant `MysqlxWorker` path it exercised. Listener-lifecycle coverage now lives in `mysqlx_thread_unit-t` and `mysqlx_robustness_unit-t`. Sub-checkboxes below are kept for historical reference; no further work required.
@ -500,7 +529,7 @@ Tests thread safety of `MysqlxConfigStore`.
Plan: `plan(15)`
- [] **Commit**: `test: add mysqlx config store concurrent unit tests (15 assertions)`
- [x] **Commit**: `test: add mysqlx config store concurrent unit tests (15 assertions)`
---
@ -524,7 +553,7 @@ Plan: `plan(15)`
Plan: `plan(20)`
- [] **Commit**: `test: expand plugin config unit tests to 20 assertions`
- [x] **Commit**: `test: expand plugin config unit tests to 20 assertions`
---
@ -558,7 +587,7 @@ Plan: `plan(10)`
Note: This task depends on ProxySQL being built and running with the mysqlx plugin loaded, connected to a Docker MySQL 8.x backend. The test connects to ProxySQL's X port, not directly to MySQL.
- [] **Commit**: `test: add mysqlx E2E handshake test infrastructure`
- [x] **Commit**: `test: add mysqlx E2E handshake test infrastructure`
---
@ -584,7 +613,7 @@ Plan: `plan(10)`
Note: Requires same Docker infrastructure as Task 13.