sync SVN r18041

This commit is contained in:
2026-08-23 11:08:56 +03:00
parent 79b08470be
commit 0027a28961
19 changed files with 369 additions and 592 deletions

View File

@@ -2,8 +2,7 @@
Harness reutilizabil pentru teste care afiseaza un formular REAL (cu dependinte dummy, fara
Oracle), executa actiuni si valideaza vizual prin capturi. Valabil pentru toate proiectele VFP
din suita ROA. Alternativa la `testare-vfp-mcp.md` (care porneste programul principal intreg);
capcanele generale de rulare headless (`-A -T`, SAFETY, script agatat) sunt in
din suita ROA. Capcanele generale de rulare headless (`-A -T`, SAFETY, script agatat) sunt in
`depanare_testare_vfp.md`.
Fisiere in `COMUN\utile\Teste\`: `vfp_ui_harness.ps1` (orchestrator generic, parametrizat),
@@ -85,10 +84,9 @@ Doua non-dovezi, ca sa nu se piarda timp pe ele:
## Capcane / deblocari
a. **`SET SAFETY OFF` + `SET TALK OFF` inaintea primului `STRTOFILE`.** Cu SAFETY ON, scrierea
log-ului existent scoate un dialog modal care blocheaza rularea (proces viu, "instanta
moarta"). Cu TALK ON, `SUM`/`CALCULATE` isi echo-eaza rezultatele peste formular in
screenshots.
a. **`SET SAFETY OFF` + `SET TALK OFF` inaintea primului `STRTOFILE`** - capcana completa in
`depanare_testare_vfp.md` sectiunea 7. Specific UI: cu TALK ON, `SUM`/`CALCULATE` isi
echo-eaza rezultatele peste formular in screenshots.
b. **Lansarea orchestratorului**: prin tool cu timeout implicit (~120s) e omorat inainte de
final. Ruleaza-l in background + asteapta `done.txt`, sau timeout 300-600s. NU porni VFP
separat de orchestrator - si-l lanseaza singur.
@@ -209,6 +207,6 @@ s. **Dialoguri native care nu apar in log si nu sunt prinse de `ON ERROR`/mock-u
tintite pe handle (`BM_CLICK` pe buton Cancel/Anulare, altfel `WM_COMMAND IDCANCEL` ->
ESCAPE ca mesaj `WM_KEYDOWN`/`WM_KEYUP` -> `WM_CLOSE`); pe dialogurile proprii VFP owner-drawn
(butoane desenate, nu HWND-uri reale) dismiss-ul poate esua cinstit — captura PNG + dump text
raman oricum de incredere, indiferent de rezultatul dismiss-ului. Sterge intotdeauna `.fxp`-ul
vechi inainte de FIECARE rulare (watchdog-ul o face singur la lansare) — altfel VFP ruleaza
tacut codul compilat vechi si rulari "identice" dau rezultate diferite, fara nicio urma in log.
raman oricum de incredere, indiferent de rezultatul dismiss-ului. Watchdog-ul sterge singur
`.fxp`-ul vechi la lansare - capcana completa (de ce e obligatoriu) in `depanare_testare_vfp.md`
sectiunea 7.