ISS-018: FanucProgram.Standardize() prepends a leading '\n' to the
program body, so the O#### header is not on lines[0]. The validator
first-line check read lines[0] and always failed "First line must be
O####", rejecting every valid Fanuc/Mitsubishi upload. Scan the first
non-blank line instead. Upload (FOCAS tape) format unchanged.
ISS-019: field-test .bat files passed -pathprogramma unquoted; on
install paths with spaces ("visual studio prove") cmd split the arg and
ArgParser captured only the first token -> truncated path. Quote the
arg in all 7 scripts.
Add regression test Validate_LeadingBlankLineBeforeONumber for both
Fanuc and Mitsubishi.
Surfaced by field testing against a local docker FTP server.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
27 lines
1.2 KiB
Batchfile
27 lines
1.2 KiB
Batchfile
@echo off
|
|
REM ============================================================
|
|
REM T03 - VALIDATORE pre-invio (gating)
|
|
REM Tenta l'invio di 4 programmi non conformi + 1 valido.
|
|
REM Attesi (regole Fanuc/Mitsubishi in NcProgramValidator):
|
|
REM O0001_valid -> Errore:0 (ma vedi criticita C4)
|
|
REM O0002_lowercase -> -204 "Lowercase letters not allowed"
|
|
REM O0003_brackets -> -204 "Forbidden char '['/']'"
|
|
REM O0004_longblock -> -204 "Block length > 80 chars"
|
|
REM no_header -> -202 (GetProgramTitle eccezione: nessun O####)
|
|
REM Verificare che il validatore BLOCCHI prima di scrivere su CNC.
|
|
REM ============================================================
|
|
setlocal enabledelayedexpansion
|
|
call "%~dp0config.bat"
|
|
if not exist "%RESULTS%" mkdir "%RESULTS%"
|
|
set LOG=%RESULTS%\t03_validatore.log
|
|
echo === T03 VALIDATORE === > "%LOG%"
|
|
|
|
for %%F in (O0001_valid O0002_lowercase O0003_brackets O0004_longblock no_header) do (
|
|
echo. >> "%LOG%"
|
|
echo ----- INVIO %%F ----- >> "%LOG%"
|
|
"%EXE%" -manufacturer=mitsubishi -azione=Invia -ip=%IP% -porta=%PORT% -username=%USER% -password=%PASS% -path=%PROGNUM% -pathprogramma="%~dp0samples\%%F.nc" >> "%LOG%" 2>&1
|
|
echo EXITCODE %%F = !ERRORLEVEL! >> "%LOG%"
|
|
)
|
|
echo Log: %LOG%
|
|
type "%LOG%"
|
|
endlocal
|