[DTP-Worker] Sprint 8 · buffer L75 · Intégrité matrice régression : fix gate check_regression cassé en CI (run baseline commité) + invariant disque→CI (INV4 orphan_tests_dirs)
Défaut #1 (bug CI réel) : ci/check_regression.sh exigeait regression_run.json commité comme baseline, mais le fichier était .gitignore → absent en checkout propre → le job Gitea check-regression échouait sur CHAQUE run CI (ne passait qu'en local via un fichier non suivi). L'artefact run est byte-déterministe (aucun horodatage/hôte/durée · path relatif) → committer est licite. Fix : run désormais commité (baseline), .gitignore + README réécrits. Défaut #2 (invariant manquant) : coverage_report prouvait CI→disque mais pas l'inverse. Nouveau disk_test_modules() + orphan_tests_dirs dans INV4 : un module gagnant un tests/ sans job CI fait chuter la couverture (fini la sous-comptée silencieuse de la matrice). Schéma + 2 tests de morsure. Consommateur régénéré : qa/audit_4big/quality_report.json (README 3710→4236 o, 24→26 méthodes). Matrice 534/21/PASS inchangée (harnais self-exclu, INV3). 5 gates verts · 26+34 tests OK · YAML valide.
This commit is contained in:
@@ -47,12 +47,18 @@ python3 regression_gen.py build # → out/regression_plan.json + MANI
|
||||
python3 regression_gen.py validate
|
||||
|
||||
# Régression EXHAUSTIVE (exécute réellement toutes les suites) — local/DevOps :
|
||||
python3 regression_gen.py run # → out/regression_run.json (non commité)
|
||||
python3 regression_gen.py run # → out/regression_run.json (COMMITÉ)
|
||||
```
|
||||
|
||||
`run` renvoie un code de sortie ≠ 0 si **une seule** suite est rouge → utilisable
|
||||
comme garde de release. Sa sortie est **non déterministe** (temps machine) donc
|
||||
**non commitée** (voir `.gitignore`).
|
||||
comme garde de release. Sa sortie est **byte-déterministe** — elle ne porte
|
||||
**aucun** horodatage / hôte / durée / chemin absolu (`path` relatif, compteurs
|
||||
`ran/passed/failures` seuls) : deux `run` successifs sont **byte-identiques**.
|
||||
`out/regression_run.json` est donc **commité** et sert de **baseline** au gate CI
|
||||
`ci/check_regression.sh`, qui régénère un `run` frais et exige l'**identité
|
||||
byte-for-byte** avec le fichier commité (+ verdict `PASS`) — c'est ce qui empêche
|
||||
une matrice périmée ou rouge d'être commitée verte. `check_artifacts.sh`, lui, ne
|
||||
rejoue que `build` (déterministe) et **ignore** cet artefact d'exécution.
|
||||
|
||||
## Contrat de sortie (plan)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user