test: add TDD bug-capture test for #993 — server_connect non-atomic writes #1128

Merged
brent.edwards merged 7 commits from tdd/m6-server-connect-non-atomic into master 2026-03-26 05:41:47 +00:00

7 Commits

Author SHA1 Message Date
brent.edwards 52511533b5 Merge remote-tracking branch 'origin/master' into merge-master-tmp
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 34s
CI / lint (pull_request) Successful in 5m4s
CI / typecheck (pull_request) Successful in 5m21s
CI / quality (pull_request) Successful in 5m21s
CI / security (pull_request) Successful in 5m39s
CI / integration_tests (pull_request) Successful in 10m26s
CI / unit_tests (pull_request) Successful in 10m45s
CI / docker (pull_request) Successful in 9s
CI / e2e_tests (pull_request) Successful in 13m21s
CI / coverage (pull_request) Successful in 11m48s
CI / status-check (pull_request) Successful in 2s
CI / benchmark-regression (pull_request) Successful in 1h18m2s
2026-03-26 02:58:55 +00:00
brent.edwards 8ccda647a8 Merge remote-tracking branch 'origin/master' into merge-master-tmp
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 18s
CI / lint (pull_request) Successful in 4m34s
CI / quality (pull_request) Successful in 4m54s
CI / typecheck (pull_request) Successful in 5m33s
CI / security (pull_request) Successful in 5m48s
CI / integration_tests (pull_request) Successful in 7m50s
CI / unit_tests (pull_request) Successful in 9m37s
CI / docker (pull_request) Successful in 1m11s
CI / e2e_tests (pull_request) Successful in 10m44s
CI / coverage (pull_request) Successful in 11m39s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-26 02:09:54 +00:00
brent.edwards 822f999ebb fix(test): increase container resolve regression timeouts to 120s
CI / build (pull_request) Successful in 32s
CI / lint (pull_request) Successful in 3m22s
CI / quality (pull_request) Successful in 3m42s
CI / typecheck (pull_request) Successful in 3m55s
CI / security (pull_request) Successful in 4m2s
CI / integration_tests (pull_request) Successful in 6m42s
CI / unit_tests (pull_request) Successful in 7m4s
CI / docker (pull_request) Successful in 1m10s
CI / e2e_tests (pull_request) Successful in 9m49s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
2026-03-26 01:44:00 +00:00
brent.edwards 498dca8137 Merge remote-tracking branch 'origin/master' into merge-master-tmp
CI / build (pull_request) Successful in 38s
CI / lint (pull_request) Successful in 5m22s
CI / typecheck (pull_request) Successful in 5m50s
CI / security (pull_request) Successful in 6m19s
CI / quality (pull_request) Successful in 6m22s
CI / unit_tests (pull_request) Successful in 9m30s
CI / integration_tests (pull_request) Failing after 9m39s
CI / benchmark-publish (pull_request) Has been skipped
CI / docker (pull_request) Successful in 1m11s
CI / e2e_tests (pull_request) Successful in 11m15s
CI / coverage (pull_request) Failing after 13m55s
CI / benchmark-regression (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
2026-03-26 01:06:58 +00:00
brent.edwards 2802af13d0 Merge branch 'master' into tdd/m6-server-connect-non-atomic
CI / build (pull_request) Successful in 40s
CI / lint (pull_request) Successful in 5m20s
CI / quality (pull_request) Successful in 5m33s
CI / typecheck (pull_request) Successful in 5m40s
CI / benchmark-regression (pull_request) Waiting to run
CI / security (pull_request) Successful in 5m54s
CI / integration_tests (pull_request) Successful in 8m58s
CI / unit_tests (pull_request) Successful in 9m13s
CI / docker (pull_request) Successful in 1m5s
CI / e2e_tests (pull_request) Successful in 11m41s
CI / coverage (pull_request) Failing after 20m3s
CI / benchmark-publish (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 5s
2026-03-26 00:13:28 +00:00
brent.edwards 3dee9441a1 Merge remote-tracking branch 'origin/master' into tdd/m6-server-connect-non-atomic
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / lint (pull_request) Successful in 3m19s
CI / typecheck (pull_request) Successful in 3m46s
CI / quality (pull_request) Successful in 3m43s
CI / security (pull_request) Successful in 3m56s
CI / integration_tests (pull_request) Successful in 7m57s
CI / unit_tests (pull_request) Successful in 8m31s
CI / docker (pull_request) Successful in 1m5s
CI / e2e_tests (pull_request) Successful in 9m30s
CI / coverage (pull_request) Successful in 10m8s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 55m59s
2026-03-25 20:45:08 +00:00
brent.edwards 231ed59ad2 test: add TDD bug-capture test for #993 — server_connect non-atomic writes
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 37s
CI / lint (pull_request) Successful in 5m18s
CI / quality (pull_request) Successful in 5m36s
CI / typecheck (pull_request) Successful in 5m53s
CI / security (pull_request) Successful in 5m59s
CI / integration_tests (pull_request) Successful in 8m40s
CI / unit_tests (pull_request) Successful in 8m49s
CI / docker (pull_request) Successful in 1m0s
CI / e2e_tests (pull_request) Successful in 10m19s
CI / coverage (pull_request) Successful in 11m10s
CI / status-check (pull_request) Successful in 2s
CI / benchmark-regression (pull_request) Failing after 46m26s
Add 3 Behave scenarios tagged @tdd_expected_fail @tdd_bug @tdd_bug_993
that prove bug #993 exists: server_connect() in server.py makes three
sequential set_value() calls with no transaction or rollback.  When a
middle call fails (simulated via _FailingConfigService subclass), the
earlier values are already persisted, leaving the config in a half-
written state.

Scenarios:
  1. Second set_value fails — asserts server.url rolled back (FAILS:
     server.url retains the new value, proving non-atomicity).
  2. Third set_value fails — asserts both url and namespace rolled back
     (FAILS: both retain new values).
  3. Empty config + second call fails — asserts server.url not persisted
     (FAILS: server.url was written despite subsequent failure).

All assertions fail as expected (the bug exists), and the
@tdd_expected_fail tag inverts these to CI passes.  When the fix in
#993 removes the tag, the tests will run normally and must pass.

Robot integration test: N/A — the non-atomic write behavior is
internal to server_connect and ConfigService.set_value; no external
system integration is involved.

Quality gates verified:
  - lint: pass
  - typecheck: pass (0 errors)
  - unit_tests: 462 features / 12233 scenarios / 46803 steps — all pass
  - integration_tests: 1537 tests — all pass
  - e2e_tests: 37 tests — all pass
  - coverage_report: 98% (threshold 97%)

ISSUES CLOSED: #1097
2026-03-23 16:49:11 +00:00