@rem @generated by @aspect_bazel_lib//lib/private:diff_test.bzl @echo off :: TODO: Add support for XML_OUTPUT_FILE like in diff_test_tmpl.sh SETLOCAL ENABLEEXTENSIONS SETLOCAL ENABLEDELAYEDEXPANSION set MF=%RUNFILES_MANIFEST_FILE:/=\\% set PATH=%SYSTEMROOT%\\system32 set F1={file1} set F2={file2} if "!F1:~0,9!" equ "external/" (set F1=!F1:~9!) else (set F1=!TEST_WORKSPACE!/!F1!) if "!F2:~0,9!" equ "external/" (set F2=!F2:~9!) else (set F2=!TEST_WORKSPACE!/!F2!) for /F "tokens=2* usebackq" %%i in (`findstr.exe /l /c:"!F1! " "%MF%"`) do ( set RF1=%%i set RF1=!RF1:/=\\! ) if "!RF1!" equ "" ( if "%RUNFILES_MANIFEST_ONLY%" neq "1" if exist "%RUNFILES_DIR%\\%F1%" ( set RF1="%RUNFILES_DIR%\\%F1%" ) else ( if exist "{file1}" ( set RF1="{file1}" ) ) if "!RF1!" neq "" ( set RF1=!RF1:/=\\! ) else ( echo>&2 ERROR: !F1! not found exit /b 1 ) ) for /F "tokens=2* usebackq" %%i in (`findstr.exe /l /c:"!F2! " "%MF%"`) do ( set RF2=%%i set RF2=!RF2:/=\\! ) if "!RF2!" equ "" ( if "%RUNFILES_MANIFEST_ONLY%" neq "1" if exist "%RUNFILES_DIR%\\%F2%" ( set RF2="%RUNFILES_DIR%\\%F2%" ) else ( if exist "{file2}" ( set RF2="{file2}" ) ) if "!RF2!" neq "" ( set RF2=!RF2:/=\\! ) else ( echo>&2 ERROR: !F2! not found exit /b 1 ) ) set DF1=0 set DF2=0 if exist "!RF1!\\*" ( set DF1=1 ) if exist "!RF2!\\*" ( set DF2=1 ) if %DF1% equ 1 ( if %DF2% equ 0 ( echo>&2 ERROR: Cannot compare directory "{file1}" and a file "{file2}" exit /b 1 ) ) if %DF1% equ 0 ( if %DF2% equ 1 ( echo>&2 ERROR: Cannot compare file "{file1}" and a directory "{file2}" exit /b 1 ) ) set DFX=0 if %DF1% equ 1 ( if %DF2% equ 1 ( set DFX=1 ) ) if %DFX% equ 1 ( for /f "delims=" %%F in ( 'echo "."^&forfiles /s /p "!RF1!" /m "*" /c "cmd /c echo @relpath"' ) do ( if not exist "!RF2!\\%%~F" ( echo>&2 FAIL: file "%%~F" exists in "{file1}" and not in "{file2}". {fail_msg} GOTO fail ) if not exist "!RF1!\\%%~F\\*" ( fc.exe /B "!RF1!\\%%~F" "!RF2!\\%%~F" 2>NUL 1>NUL if !ERRORLEVEL! neq 0 ( if !ERRORLEVEL! equ 1 ( echo>&2 FAIL: files "{file1}\\%%~F" and "{file2}\\%%~F" differ. {fail_msg} GOTO fail ) else ( fc.exe /B "!RF1!\\%%~F" "!RF2!\\%%~F" GOTO fail ) ) ) ) for /f "delims=" %%F in ( 'echo "."^&forfiles /s /p "!RF2!" /m "*" /c "cmd /c echo @relpath"' ) do ( if not exist "!RF1!\\%%~F" ( echo>&2 FAIL: file "%%~F" exists in "{file2}" and not in "{file1}". {fail_msg} GOTO fail ) ) ) else ( fc.exe /B "!RF1!" "!RF2!" 2>NUL 1>NUL if %ERRORLEVEL% neq 0 ( if %ERRORLEVEL% equ 1 ( echo>&2 FAIL: files "{file1}" and "{file2}" differ. {fail_msg} exit /b 1 ) else ( fc.exe /B "!RF1!" "!RF2!" exit /b %errorlevel% ) ) ) exit /b 0 :fail exit /b 1