Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3834 — A case run removes its own scratch dir however it ends: passed, failed, timed out or interrupted

Make test/run.sh remove each case's $TMPDIR/mj-test.* directory and its skip mark when the case passes, fails, times out, or when the runner itself is interrupted or terminated while the case runs (an EXIT, INT, TERM and HUP trap that first stops the case's process group), and keep it only when MJ_TEST_KEEP=1 asks, naming the kept path.

PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné souběžně

Part of ci-critical-path — The critical path from a change to its verdict, and from a merge to its verified deploy, runs under a minute warm.

Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3834 bude přijato.

Cíl

Make test/run.sh remove each case's $TMPDIR/mj-test.* directory and its skip mark when the case passes, fails, times out, or when the runner itself is interrupted or terminated while the case runs (an EXIT, INT, TERM and HUP trap that first stops the case's process group), and keep it only when MJ_TEST_KEEP=1 asks, naming the kept path.

Proč

Orphaned mj-test.* directories were the machine's steady disk drain: 13 GiB of them on 2026-10-21, from runs a pre-push hook or a session had stopped, the largest 3.8 GiB each. run_case removed the directory only on its own normal paths, so a runner stopped between a case's start and its end left the whole fixture behind.

Aktuální stav

test/run.sh run_case calls rm -rf \"$T\" \"$mark\" after the case returns and after a timeout; no trap covers an interrupted runner; there is no keep flag.

Cílový stav

No case run leaves its scratch dir unless MJ_TEST_KEEP=1 is set, and then the runner prints the kept path.

Rozsah

  • test/run.sh
  • test/cases/3834_a_case_run_removes_its_own_dir.sh

Mimo rozsah

  • Sweeping orphans older runs already left (I3832, I3833)
  • A runner killed with SIGKILL, which no trap can see

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • A passing case leaves no mj-test.* directory in TMPDIR
  • A failing case leaves none
  • A runner terminated with TERM while its case runs exits, and leaves none, and the case's process group is stopped
  • MJ_TEST_KEEP=1 keeps exactly one directory and the runner prints its path
  • Against the runner of master 573df967bb5 the interrupted run leaves its directory, so the case fails there

Validace

  • bash test/run.sh 3834_a_case_run_removes_its_own_dir 123_case_bound 413_a_skipped_case_is_not_a_proof
  • bin/majordomus plan validate

Požadované důkazy

  • a_case_run_removes_its_own_dir_test

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

Canonical record: .ai/repo/project/issues/I3834.yaml. Read it back with majordomus plan show I3834.

Prohledává názvy a popisy všech stránek, které tento web publikuje.