diff --git a/README.md b/README.md new file mode 100644 index 0000000..70c8f67 --- /dev/null +++ b/README.md @@ -0,0 +1,87 @@ +# GRIFO_M_PBIT — Release Notes & Feature Summary + +Questo documento sintetizza le funzionalità implementate nella versione corrente dello +script `GRIFO_M_PBIT.py` rispetto a una versione iniziale minimale (senza GUI, senza +handling avanzato di "known failures", senza propagation della versione dello script, senza aggregazione dei risultati dei test, senza gestione del test del target). +Serve per informare altri sviluppatori sulle modifiche principali e sulle modalità d'uso. + +## Scopo +Fornire un elenco chiaro e conciso delle funzionalità aggiunte, dei comportamenti modificati +(e dove cercare il codice/documentazione per approfondire). + +## Principali funzionalità implementate +- `TEST_VERSION`: + - Aggiunta di una costante `TEST_VERSION` nello script principale. + - La stringa di versione viene inserita in tutti gli output generati: log, CSV, JSON e PDF. + +- Gestione estesa di `KNOWN_FAILURES` (ora applicata anche a B8): + - `KNOWN_FAILURES` può ora essere usata per classificare come "Known" anche le failure + individuate nel drill-down B8. + - Aggiunto helper `is_known_failure(field_name)` (matching case-insensitive, substring). + - Comportamento: le failure classificate come "known" sono registrate ma NON rendono + la run fallita; le failure non note su B8 causano la FAIL della run. + +- B8 drill-down migliorato: + - Il drill-down B8 classifica ogni field in PASS / REAL FAIL / KNOWN FAIL. + - Conta `b8_pass`, `b8_fail`, `b8_known_fail` e mantiene dettagli separati per real e known. + - Drill-down eseguito solo se necessario (presenza di real failures) oppure se forzato + tramite `FORCE_B8_DRILL_DOWN`. + +- GUI real-time (Tkinter) — `GRIFO_M_PBIT_gui.py`: + - Aggiunta di un monitor in tempo reale opzionale (avviabile di default, disabilitabile con `--no-gui`). + - Tabella `Runs Overview` aggiornata per mostrare la colonna B8 nel formato `Pass/Fail/Known`. + - Comunicazione thread-safe tra test thread e GUI tramite `queue.Queue()`. + +- Reportistica aggiornata (CSV / JSON / PDF): + - I file CSV/JSON includono ora `script_version` e i conteggi `b8_known_fail` per run. + - Il PDF include la `Script Version` nella sezione metadati e mostra, nella tabella Run Details, + la colonna B8 come `Pass/Fail/Known`. + +- Simulation & Mocks migliorati: + - `GRIFO_M_PBIT_mock.py` include scenari aggiuntivi (`pedestal_fail`, `mixed_b8_failures`, `agc_tests_fail`, ecc.) + - Launcher `run_simulate.bat` e `run_simulate_simple.bat` sono mantenuti per eseguire rapidamente + test in modalità simulata. + +## Differenze rispetto alla versione iniziale (baseline) +Baseline: script senza GUI, senza gestione avanzata di known-failures, senza propagation della versione, ecc. + +Cosa è stato aggiunto/alterato: +- Interfaccia grafica opzionale per monitoraggio realtime. +- Meccanismo `KNOWN_FAILURES` esteso a B8 con helper dedicato. +- Maggiori dettagli nei report (terzo campo B8: known count; script version metadata). +- Drill-down B8 condizionato e classificazione Known vs Real. +- Mocks e scenari di simulazione arricchiti per testare casi complessi. +- Test automatici per prevenire regressioni nelle regole di notazione delle failure. +- Correzioni logiche che garantiscono che real B8 failures provochino correttamente la FAIL della run. +- Gestione dei test con target generator + +## Dove trovare il codice e la documentazione +- Script principale: `TestEnvironment/scripts/GRIFO_M_PBIT.py` +- GUI: `TestEnvironment/scripts/GRIFO_M_PBIT_gui.py` +- Mock / simulazione: `TestEnvironment/scripts/GRIFO_M_PBIT_mock.py` +- Report / PDF generator: `TestEnvironment/env/leo_grifo_pdf2report.py` + + +## Esempi di esecuzione +- Modalità simulazione (rapida): + +```powershell +.\run_simulate.bat +``` + +- Modalità hardware: + +```powershell +.\run_target.bat +``` + +Output generati in (cartelle): +- Log: `TestEnvironment/LOG/GRIFO_M_PBIT.log` +- PDF/CSV/JSON: `TestEnvironment/pdf_reports/` (file con prefisso `GRIFO_M_PBIT_YYYYMMDD_HHMMSS`) + +## Note per sviluppatori +- Matching `KNOWN_FAILURES`: la logica attuale usa substring case-insensitive. Per renderla più restrittiva + usare regex o nomi completi: modificare `is_known_failure()` in `GRIFO_M_PBIT.py`. +- Per aggiungere un known failure permanente, aggiornare la lista `KNOWN_FAILURES` in `GRIFO_M_PBIT.py`. +- Se si modifica la struttura dei report JSON, aggiornare anche `TestEnvironment/env/leo_grifo_test_report.py`. + diff --git a/_doc/GRIFO_M_PBIT_Documentation/gui_completo.png b/_doc/GRIFO_M_PBIT_Documentation/gui_completo.png new file mode 100644 index 0000000..08b227a Binary files /dev/null and b/_doc/GRIFO_M_PBIT_Documentation/gui_completo.png differ diff --git a/_doc/GRIFO_M_PBIT_Documentation/gui_dettaglio.png b/_doc/GRIFO_M_PBIT_Documentation/gui_dettaglio.png new file mode 100644 index 0000000..ab03755 Binary files /dev/null and b/_doc/GRIFO_M_PBIT_Documentation/gui_dettaglio.png differ diff --git a/_doc/GRIFO_M_PBIT_Documentation/gui_in_corso.png b/_doc/GRIFO_M_PBIT_Documentation/gui_in_corso.png new file mode 100644 index 0000000..b9c5b9f Binary files /dev/null and b/_doc/GRIFO_M_PBIT_Documentation/gui_in_corso.png differ