Skip to content

tests: reorganize e2e_*.py into tests/e2e/ package + add missing fault-injection cases #29

@alokwhitewolf

Description

@alokwhitewolf

tests/e2e*.py is messy. Three top-level files, each with their own near-duplicate _run / _evo / _shutdown_dashboard / _build_repo helpers. Adding categories makes it worse.

Reorg into tests/e2e/:

  • helpers.py -- shared subprocess + repo-builder helpers
  • lifecycle.py, pool.py, lineage.py -- contents of the current e2e.py, e2e_pool.py, e2e_lineage.py
  • dispatch_live.py -- the live dispatch tests already in e2e.py
  • fault_injection.py -- new
  • tests/run_e2e.py -- single runner; gates per-module on EVO_LIVE_TEST_CLAUDE

While reorganizing, add the cases the current suite doesn't cover:

  • pool_state.json corruption: hand-corrupt the file, verify the recovery error fires (fault_injection.py)
  • crash mid-fork with stranded lease: kill the dispatched subprocess between _mark_committed and release_lease, verify next evo new reconciles (fault_injection.py)
  • concurrent evo dispatch run against the per-parent warming lock: N parallel calls with the same parent, verify exactly one explorer record gets written (dispatch_live.py, live, gated)
  • deep lineage chain + compaction: chain 5+ experiments, check whether the LINEAGE re-read hint fires when the protocol gets summarized -- needed to decide Compact Instructions for lineage forking #27 (lineage.py, live, gated, ~$2-3)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions