sync SVN r18041
This commit is contained in:
@@ -28,18 +28,14 @@ $p.WaitForExit(120000); if (!$p.HasExited) { $p.Kill() }
|
||||
- `-A` ignora config.fpw implicit, `-T` sare peste splash; **ambele obligatorii** - fara `-T`
|
||||
procesul ramane pe ecranul de intampinare (simptom identic cu o eroare de compilare). `-c<cale>`
|
||||
explicit (lipit de flag) e preluat si cu `-A`.
|
||||
- **SAFETY**: sub `-A` porneste ON - primul `STRTOFILE` peste un log existent (sau `COMPILE` peste
|
||||
un `.err`/`.fxp` existent) scoate dialogul modal "overwrite?" si procesul pare agatat. Pune
|
||||
`SET SAFETY OFF` ca PRIMA linie din script si/sau `SAFETY=OFF`+`RESOURCE=OFF` intr-un config.fpw
|
||||
propriu pasat cu `-c`. Verificare: logheaza `SET("SAFETY")`/`SET("RESOURCE")` la start.
|
||||
- **SAFETY**: sub `-A` porneste ON - vezi sectiunea 7 pentru capcana completa si remediu.
|
||||
- In script: logare cu STRTOFILE (nu WAIT WINDOW / debugger - nu exista consola);
|
||||
`ON ERROR DO <handler> WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()` care logheaza si
|
||||
continua (mimeaza ErrorHandler); `QUIT` obligatoriu la final.
|
||||
- `LINENO()` din handler e relativ la inceputul metodei: linia in `.vc2` = linia raportata +
|
||||
linia `PROCEDURE`.
|
||||
- Nu rula cu IDE-ul sau exe-ul aplicatiei deschis (lock pe binare); sterge `.fxp`-ul vechi dupa
|
||||
editarea scriptului - altfel VFP ruleaza codul vechi din `.fxp` fara niciun semn (testul poate
|
||||
trece fals; se prinde doar cand lipseste din log o linie scrisa doar de codul nou).
|
||||
- Nu rula cu IDE-ul sau exe-ul aplicatiei deschis (lock pe binare). Sterge `.fxp`-ul vechi dupa
|
||||
editarea scriptului - vezi sectiunea 7 pentru simptomul complet de `.FXP`/`.ERR` stale.
|
||||
- Forme modale: `Show(1)` blocheaza. Replica in script doar liniile relevante din Show, sau
|
||||
seteaza `WindowType = 0`.
|
||||
|
||||
@@ -134,9 +130,12 @@ Cand un bug apare "de azi", compara cu clasa veche fara sa atingi SVN:
|
||||
|
||||
## 7. Capcane la SCRIEREA scriptului de test
|
||||
|
||||
- **`SET SAFETY OFF` in primele linii, INAINTE de orice `STRTOFILE`/`CREATE CURSOR`** (plus
|
||||
`SET TALK OFF`). Fara el VFP deschide dialogul de confirmare la suprascriere, iar headless
|
||||
dialogul blocheaza procesul pana la timeout. Suitele existente il au deja - capcana apare la
|
||||
- **`SET SAFETY OFF` in primele linii, INAINTE de orice `STRTOFILE`/`CREATE CURSOR`/`COMPILE`**
|
||||
(plus `SET TALK OFF`). Sub `-A` SAFETY porneste ON: primul `STRTOFILE` peste un log existent, sau
|
||||
`COMPILE` peste un `.err`/`.fxp` existent, scoate dialogul modal "overwrite?" care blocheaza
|
||||
procesul pana la timeout (proces viu, pare agatat). Alternativa/completare: `SAFETY=OFF`+
|
||||
`RESOURCE=OFF` intr-un config.fpw propriu pasat cu `-c`. Verificare: logheaza
|
||||
`SET("SAFETY")`/`SET("RESOURCE")` la start. Suitele existente il au deja - capcana apare la
|
||||
scripturile ad-hoc, scrise repede pentru o masuratoare.
|
||||
- **`DEFINE CLASS ... ENDDEFINE` nu poate sta la mijlocul programului principal.** Toate liniile
|
||||
de DUPA `ENDDEFINE` dau "Statement is not in a procedure" (vezi `<script>.ERR`); scriptul se
|
||||
|
||||
Reference in New Issue
Block a user