|
1 | | -@rem @generated by @bazel_lib//lib/private:diff_test.bzl |
2 | | -@echo off |
3 | | -:: TODO: Add support for XML_OUTPUT_FILE like in diff_test_tmpl.sh |
4 | | -SETLOCAL ENABLEEXTENSIONS |
5 | | -SETLOCAL ENABLEDELAYEDEXPANSION |
6 | | -set RUNFILES_MANIFEST_ONLY=1 |
7 | | -{BATCH_RLOCATION_FUNCTION} |
8 | | -set MF=%RUNFILES_MANIFEST_FILE:/=\\% |
9 | | -set PATH=%SYSTEMROOT%\\system32 |
10 | | -call :rlocation {file1} RF1 |
11 | | -call :rlocation {file2} RF2 |
12 | | -set RF1=!RF1:/=\! |
13 | | -set RF2=!RF2:/=\! |
14 | | -if "{file1_sub_path}" neq "" ( |
15 | | - set RF1=!RF1!\\{file1_sub_path} |
16 | | -) |
17 | | -if "{file2_sub_path}" neq "" ( |
18 | | - set RF2=!RF2!\\{file2_sub_path} |
19 | | -) |
20 | | -set DF1=0 |
21 | | -set DF2=0 |
22 | | -if exist "!RF1!\\*" ( |
23 | | - set DF1=1 |
24 | | -) |
25 | | -if exist "!RF2!\\*" ( |
26 | | - set DF2=1 |
27 | | -) |
28 | | -if %DF1% equ 1 ( |
29 | | - if %DF2% equ 0 ( |
30 | | - echo>&2 ERROR: Cannot compare directory "{file1}" and a file "{file2}" |
31 | | - exit /b 1 |
32 | | - ) |
33 | | -) |
34 | | -if %DF1% equ 0 ( |
35 | | - if %DF2% equ 1 ( |
36 | | - echo>&2 ERROR: Cannot compare file "{file1}" and a directory "{file2}" |
37 | | - exit /b 1 |
38 | | - ) |
39 | | -) |
40 | | -set DFX=0 |
41 | | -if %DF1% equ 1 ( |
42 | | - if %DF2% equ 1 ( |
43 | | - set DFX=1 |
44 | | - ) |
45 | | -) |
46 | | - |
47 | | -if %DFX% equ 0 goto :compare_files |
48 | | -:compare_directories |
49 | | -for /f "delims=" %%F in ( |
50 | | - 'echo "."^&forfiles /s /p "!RF1!" /m "*" /c "cmd /c echo @relpath"' |
51 | | -) do ( |
52 | | - if not exist "!RF2!\\%%~F" ( |
53 | | - echo>&2 FAIL: file "%%~F" exists in "{file1}" and not in "{file2}". |
54 | | - GOTO fail |
55 | | - ) |
56 | | - if not exist "!RF1!\\%%~F\\*" ( |
57 | | - fc.exe "!RF1!\\%%~F" "!RF2!\\%%~F" 2>NUL 1>NUL |
58 | | - if !ERRORLEVEL! neq 0 ( |
59 | | - if !ERRORLEVEL! equ 1 ( |
60 | | - echo>&2 FAIL: files "!RF1!\\%%~F" and "!RF2!\\%%~F" differ. |
61 | | - set RF1=!RF1!\\%%~F |
62 | | - set RF2=!RF2!\\%%~F |
63 | | - GOTO fail |
64 | | - ) else ( |
65 | | - fc.exe "!RF1!\\%%~F" "!RF2!\\%%~F" |
66 | | - GOTO fail |
67 | | - ) |
68 | | - ) |
69 | | - ) |
70 | | -) |
71 | | -for /f "delims=" %%F in ( |
72 | | - 'echo "."^&forfiles /s /p "!RF2!" /m "*" /c "cmd /c echo @relpath"' |
73 | | -) do ( |
74 | | - if not exist "!RF1!\\%%~F" ( |
75 | | - echo>&2 FAIL: file "%%~F" exists in "{file2}" and not in "{file1}". |
76 | | - GOTO fail |
77 | | - ) |
78 | | -) |
79 | | -goto :success |
80 | | - |
81 | | -:compare_files |
82 | | -echo compare_files |
83 | | -fc.exe "!RF1!" "!RF2!" 2>NUL 1>NUL |
84 | | -set result=%ERRORLEVEL% |
85 | | -if !result! neq 0 ( |
86 | | - if !result! equ 1 ( |
87 | | - echo>&2 FAIL: files "!RF1!" and "!RF2!" differ. |
88 | | - goto :fail |
89 | | - ) else ( |
90 | | - echo fc.exe "!RF1!" "!RF2!" |
91 | | - fc.exe "!RF1!" "!RF2!" |
92 | | - set result=%ERRORLEVEL% |
93 | | - exit /b !result! |
94 | | - ) |
95 | | -) else ( |
96 | | - echo fc returned 0 |
97 | | -) |
98 | | -:success |
99 | | -exit /b 0 |
100 | | - |
101 | | -:fail |
102 | | -{fail_msg} |
103 | | -echo To see differences run: |
104 | | -echo. |
105 | | -echo diff "!RF1!" "!RF2!" |
106 | | -echo. |
107 | | -exit /b 1 |
| 1 | +@rem @generated by @bazel_lib//lib/private:diff_test.bzl |
| 2 | +@echo off |
| 3 | +:: TODO: Add support for XML_OUTPUT_FILE like in diff_test_tmpl.sh |
| 4 | +SETLOCAL ENABLEEXTENSIONS |
| 5 | +SETLOCAL ENABLEDELAYEDEXPANSION |
| 6 | +set RUNFILES_MANIFEST_ONLY=1 |
| 7 | +{BATCH_RLOCATION_FUNCTION} |
| 8 | +set MF=%RUNFILES_MANIFEST_FILE:/=\\% |
| 9 | +set PATH=%SYSTEMROOT%\\system32 |
| 10 | +call :rlocation {file1} RF1 |
| 11 | +call :rlocation {file2} RF2 |
| 12 | +set RF1=!RF1:/=\! |
| 13 | +set RF2=!RF2:/=\! |
| 14 | +if "{file1_sub_path}" neq "" ( |
| 15 | + set RF1=!RF1!\\{file1_sub_path} |
| 16 | +) |
| 17 | +if "{file2_sub_path}" neq "" ( |
| 18 | + set RF2=!RF2!\\{file2_sub_path} |
| 19 | +) |
| 20 | +set DF1=0 |
| 21 | +set DF2=0 |
| 22 | +if exist "!RF1!\\*" ( |
| 23 | + set DF1=1 |
| 24 | +) |
| 25 | +if exist "!RF2!\\*" ( |
| 26 | + set DF2=1 |
| 27 | +) |
| 28 | +if %DF1% equ 1 ( |
| 29 | + if %DF2% equ 0 ( |
| 30 | + echo>&2 ERROR: Cannot compare directory "{file1}" and a file "{file2}" |
| 31 | + exit /b 1 |
| 32 | + ) |
| 33 | +) |
| 34 | +if %DF1% equ 0 ( |
| 35 | + if %DF2% equ 1 ( |
| 36 | + echo>&2 ERROR: Cannot compare file "{file1}" and a directory "{file2}" |
| 37 | + exit /b 1 |
| 38 | + ) |
| 39 | +) |
| 40 | +set DFX=0 |
| 41 | +if %DF1% equ 1 ( |
| 42 | + if %DF2% equ 1 ( |
| 43 | + set DFX=1 |
| 44 | + ) |
| 45 | +) |
| 46 | + |
| 47 | +if %DFX% equ 0 goto :compare_files |
| 48 | +:compare_directories |
| 49 | +for /f "delims=" %%F in ( |
| 50 | + 'echo "."^&forfiles /s /p "!RF1!" /m "*" /c "cmd /c echo @relpath"' |
| 51 | +) do ( |
| 52 | + if not exist "!RF2!\\%%~F" ( |
| 53 | + echo>&2 FAIL: file "%%~F" exists in "{file1}" and not in "{file2}". |
| 54 | + GOTO fail |
| 55 | + ) |
| 56 | + if not exist "!RF1!\\%%~F\\*" ( |
| 57 | + fc.exe "!RF1!\\%%~F" "!RF2!\\%%~F" 2>NUL 1>NUL |
| 58 | + if !ERRORLEVEL! neq 0 ( |
| 59 | + if !ERRORLEVEL! equ 1 ( |
| 60 | + echo>&2 FAIL: files "!RF1!\\%%~F" and "!RF2!\\%%~F" differ. |
| 61 | + set RF1=!RF1!\\%%~F |
| 62 | + set RF2=!RF2!\\%%~F |
| 63 | + GOTO fail |
| 64 | + ) else ( |
| 65 | + fc.exe "!RF1!\\%%~F" "!RF2!\\%%~F" |
| 66 | + GOTO fail |
| 67 | + ) |
| 68 | + ) |
| 69 | + ) |
| 70 | +) |
| 71 | +for /f "delims=" %%F in ( |
| 72 | + 'echo "."^&forfiles /s /p "!RF2!" /m "*" /c "cmd /c echo @relpath"' |
| 73 | +) do ( |
| 74 | + if not exist "!RF1!\\%%~F" ( |
| 75 | + echo>&2 FAIL: file "%%~F" exists in "{file2}" and not in "{file1}". |
| 76 | + GOTO fail |
| 77 | + ) |
| 78 | +) |
| 79 | +goto :success |
| 80 | + |
| 81 | +:compare_files |
| 82 | +echo compare_files |
| 83 | +fc.exe "!RF1!" "!RF2!" 2>NUL 1>NUL |
| 84 | +set result=%ERRORLEVEL% |
| 85 | +if !result! neq 0 ( |
| 86 | + if !result! equ 1 ( |
| 87 | + echo>&2 FAIL: files "!RF1!" and "!RF2!" differ. |
| 88 | + goto :fail |
| 89 | + ) else ( |
| 90 | + echo fc.exe "!RF1!" "!RF2!" |
| 91 | + fc.exe "!RF1!" "!RF2!" |
| 92 | + set result=%ERRORLEVEL% |
| 93 | + exit /b !result! |
| 94 | + ) |
| 95 | +) else ( |
| 96 | + echo fc returned 0 |
| 97 | +) |
| 98 | +:success |
| 99 | +exit /b 0 |
| 100 | + |
| 101 | +:fail |
| 102 | +{fail_msg} |
| 103 | +echo To see differences run: |
| 104 | +echo. |
| 105 | +echo diff "!RF1!" "!RF2!" |
| 106 | +echo. |
| 107 | +exit /b 1 |
0 commit comments