cmd/tests: Simplify 'if' comparison tests.

This commit is contained in:
Frédéric Delanoy 2012-11-07 00:51:17 +01:00 committed by Alexandre Julliard
parent e8b0de1e14
commit 250ce222b9
2 changed files with 89 additions and 108 deletions

View File

@ -649,7 +649,6 @@ if 1==0 (echo doom) else@tab@echo quake
echo --- comparison operators
rem NT4 misevaluates conditionals in for loops so we have to use subroutines as workarounds
rem Imbricated for loops parameters are currently not expanded correctly; this prevents usage of simpler imbricated for loops in tests
echo ------ for strings
rem NT4 stops processing of the whole batch file as soon as it finds a
rem comparison operator non fully uppercased, such as lss instead of LSS, so we
@ -662,11 +661,9 @@ if not "-1" LSS "1" (echo negative numbers as well) else echo NT4
if /i foo LSS FoOc echo if /i seems to work for LSS
if /I not foo LSS FOOb echo if /I seems to be broken for LSS
set STR_PARMS=A B AB BA AA
for %%i in (%STR_PARMS%) do call :LSStest %%i A
for %%i in (%STR_PARMS%) do call :LSStest %%i B
for %%i in (%STR_PARMS%) do call :LSStest %%i AB
for %%i in (%STR_PARMS%) do call :LSStest %%i BA
for %%i in (%STR_PARMS%) do call :LSStest %%i AA
for %%i in (%STR_PARMS%) do (
for %%j in (%STR_PARMS%) do (
call :LSStest %%i %%j))
if b LSS B (echo b LSS B) else echo NT4
if /I b LSS B echo b LSS B insensitive
if b LSS A echo b LSS A
@ -675,11 +672,9 @@ if a LSS B (echo a LSS B) else echo NT4
if /I a LSS B echo a LSS B insensitive
if A LSS b echo A LSS b
if /I A LSS b echo A LSS b insensitive
for %%i in (%STR_PARMS%) do call :LEQtest %%i A
for %%i in (%STR_PARMS%) do call :LEQtest %%i B
for %%i in (%STR_PARMS%) do call :LEQtest %%i AB
for %%i in (%STR_PARMS%) do call :LEQtest %%i BA
for %%i in (%STR_PARMS%) do call :LEQtest %%i AA
for %%i in (%STR_PARMS%) do (
for %%j in (%STR_PARMS%) do (
call :LEQtest %%i %%j))
if b LEQ B (echo b LEQ B) else echo NT4
if /I b LEQ B echo b LEQ B insensitive
if b LEQ A echo b LEQ A
@ -688,27 +683,19 @@ if a LEQ B (echo a LEQ B) else echo NT4
if /I a LEQ B echo a LEQ B insensitive
if A LEQ b echo A LEQ b
if /I A LEQ b echo A LEQ b insensitive
for %%i in (%STR_PARMS%) do call :EQUtest %%i A
for %%i in (%STR_PARMS%) do call :EQUtest %%i B
for %%i in (%STR_PARMS%) do call :EQUtest %%i AB
for %%i in (%STR_PARMS%) do call :EQUtest %%i BA
for %%i in (%STR_PARMS%) do call :EQUtest %%i AA
for %%i in (%STR_PARMS%) do (
for %%j in (%STR_PARMS%) do (
call :EQUtest %%i %%j))
if /I A EQU a echo A EQU a insensitive
for %%i in (%STR_PARMS%) do call :NEQtest %%i A
for %%i in (%STR_PARMS%) do call :NEQtest %%i B
for %%i in (%STR_PARMS%) do call :NEQtest %%i AB
for %%i in (%STR_PARMS%) do call :NEQtest %%i BA
for %%i in (%STR_PARMS%) do call :NEQtest %%i AA
for %%i in (%STR_PARMS%) do call :GEQtest %%i A
for %%i in (%STR_PARMS%) do call :GEQtest %%i B
for %%i in (%STR_PARMS%) do call :GEQtest %%i AB
for %%i in (%STR_PARMS%) do call :GEQtest %%i BA
for %%i in (%STR_PARMS%) do call :GEQtest %%i AA
for %%i in (%STR_PARMS%) do call :GTRtest %%i A
for %%i in (%STR_PARMS%) do call :GTRtest %%i B
for %%i in (%STR_PARMS%) do call :GTRtest %%i AB
for %%i in (%STR_PARMS%) do call :GTRtest %%i BA
for %%i in (%STR_PARMS%) do call :GTRtest %%i AA
for %%i in (%STR_PARMS%) do (
for %%j in (%STR_PARMS%) do (
call :NEQtest %%i %%j))
for %%i in (%STR_PARMS%) do (
for %%j in (%STR_PARMS%) do (
call :GEQtest %%i %%j))
for %%i in (%STR_PARMS%) do (
for %%j in (%STR_PARMS%) do (
call :GTRtest %%i %%j))
echo ------ for numbers
if -1 LSS 1 (echo negative numbers handled)
if not -1 LSS -10 (echo negative numbers handled)
@ -718,34 +705,28 @@ if 4 LSS 0x5 (echo hexa handled)
if not -1 LSS -0x1A (echo also in negative form)
if 11 LSS 101 (echo 11 LSS 101)
set INT_PARMS=0 1 10 9
for %%i in (%INT_PARMS%) do call :LSStest %%i 0
for %%i in (%INT_PARMS%) do call :LSStest %%i 1
for %%i in (%INT_PARMS%) do call :LSStest %%i 10
for %%i in (%INT_PARMS%) do call :LSStest %%i 9
for %%i in (%INT_PARMS%) do call :LEQtest %%i 0
for %%i in (%INT_PARMS%) do call :LEQtest %%i 1
for %%i in (%INT_PARMS%) do call :LEQtest %%i 10
for %%i in (%INT_PARMS%) do call :LEQtest %%i 9
for %%i in (%INT_PARMS%) do call :EQUtest %%i 0
for %%i in (%INT_PARMS%) do call :EQUtest %%i 1
for %%i in (%INT_PARMS%) do call :EQUtest %%i 10
for %%i in (%INT_PARMS%) do call :EQUtest %%i 9
for %%i in (%INT_PARMS%) do (
for %%j in (%INT_PARMS%) do (
call :LSStest %%i %%j))
for %%i in (%INT_PARMS%) do (
for %%j in (%INT_PARMS%) do (
call :LEQtest %%i %%j))
for %%i in (%INT_PARMS%) do (
for %%j in (%INT_PARMS%) do (
call :EQUtest %%i %%j))
if 011 EQU 9 (echo octal ok)
if 0xA1 EQU 161 (echo hexa ok)
if 0xA1 EQU "161" (echo hexa should be recognized) else (echo string/hexa compare ok)
if "0xA1" EQU 161 (echo hexa should be recognized) else (echo string/hexa compare ok)
for %%i in (%INT_PARMS%) do call :NEQtest %%i 0
for %%i in (%INT_PARMS%) do call :NEQtest %%i 1
for %%i in (%INT_PARMS%) do call :NEQtest %%i 10
for %%i in (%INT_PARMS%) do call :NEQtest %%i 9
for %%i in (%INT_PARMS%) do call :GEQtest %%i 0
for %%i in (%INT_PARMS%) do call :GEQtest %%i 1
for %%i in (%INT_PARMS%) do call :GEQtest %%i 10
for %%i in (%INT_PARMS%) do call :GEQtest %%i 9
for %%i in (%INT_PARMS%) do call :GTRtest %%i 0
for %%i in (%INT_PARMS%) do call :GTRtest %%i 1
for %%i in (%INT_PARMS%) do call :GTRtest %%i 10
for %%i in (%INT_PARMS%) do call :GTRtest %%i 9
for %%i in (%INT_PARMS%) do (
for %%j in (%INT_PARMS%) do (
call :NEQtest %%i %%j))
for %%i in (%INT_PARMS%) do (
for %%j in (%INT_PARMS%) do (
call :GEQtest %%i %%j))
for %%i in (%INT_PARMS%) do (
for %%j in (%INT_PARMS%) do (
call :GTRtest %%i %%j))
echo ------ for numbers and stringified numbers
if not "1" EQU 1 (echo strings and integers not equal) else echo foo
if not 1 EQU "1" (echo strings and integers not equal) else echo foo

View File

@ -446,15 +446,15 @@ numbers in quotes are handled as strings
negative numbers as well@or_broken@NT4
if /i seems to work for LSS
A LSS B
AB LSS B
AA LSS B
A LSS AB
AA LSS AB
A LSS BA
B LSS BA
AB LSS BA
AA LSS BA
A LSS AA
B LSS BA
AB LSS B
AB LSS BA
AA LSS B
AA LSS AB
AA LSS BA
b LSS B@or_broken@NT4
a LSS B@or_broken@NT4
a LSS B insensitive
@ -462,18 +462,18 @@ A LSS b
A LSS b insensitive
A LEQ A
A LEQ B
B LEQ B
AB LEQ B
AA LEQ B
A LEQ AB
AB LEQ AB
AA LEQ AB
A LEQ BA
A LEQ AA
B LEQ B
B LEQ BA
AB LEQ B
AB LEQ AB
AB LEQ BA
BA LEQ BA
AA LEQ B
AA LEQ AB
AA LEQ BA
A LEQ AA
AA LEQ AA
b LEQ B@or_broken@NT4
b LEQ B insensitive
@ -487,51 +487,51 @@ AB EQU AB
BA EQU BA
AA EQU AA
A EQU a insensitive
B NEQ A
AB NEQ A
BA NEQ A
AA NEQ A
A NEQ B
AB NEQ B
BA NEQ B
AA NEQ B
A NEQ AB
B NEQ AB
BA NEQ AB
AA NEQ AB
A NEQ BA
B NEQ BA
AB NEQ BA
AA NEQ BA
A NEQ AA
B NEQ A
B NEQ AB
B NEQ BA
B NEQ AA
AB NEQ A
AB NEQ B
AB NEQ BA
AB NEQ AA
BA NEQ A
BA NEQ B
BA NEQ AB
BA NEQ AA
AA NEQ A
AA NEQ B
AA NEQ AB
AA NEQ BA
A GEQ A
B GEQ A
AB GEQ A
BA GEQ A
AA GEQ A
B GEQ B
BA GEQ B
B GEQ AB
B GEQ AA
AB GEQ A
AB GEQ AB
AB GEQ AA
BA GEQ A
BA GEQ B
BA GEQ AB
BA GEQ BA
B GEQ AA
AB GEQ AA
BA GEQ AA
AA GEQ A
AA GEQ AA
B GTR A
AB GTR A
BA GTR A
AA GTR A
BA GTR B
B GTR AB
BA GTR AB
B GTR AA
AB GTR A
AB GTR AA
BA GTR A
BA GTR B
BA GTR AB
BA GTR AA
AA GTR A
------ for numbers
negative numbers handled
negative numbers handled
@ -542,19 +542,19 @@ also in negative form
11 LSS 101
0 LSS 1
0 LSS 10
1 LSS 10
9 LSS 10
0 LSS 9
1 LSS 10
1 LSS 9
9 LSS 10
0 LEQ 0
0 LEQ 1
1 LEQ 1
0 LEQ 10
0 LEQ 9
1 LEQ 1
1 LEQ 10
1 LEQ 9
10 LEQ 10
9 LEQ 10
0 LEQ 9
1 LEQ 9
9 LEQ 9
0 EQU 0
1 EQU 1
@ -564,34 +564,34 @@ octal ok
hexa ok
string/hexa compare ok
string/hexa compare ok
1 NEQ 0
10 NEQ 0
9 NEQ 0
0 NEQ 1
10 NEQ 1
9 NEQ 1
0 NEQ 10
1 NEQ 10
9 NEQ 10
0 NEQ 9
1 NEQ 0
1 NEQ 10
1 NEQ 9
10 NEQ 0
10 NEQ 1
10 NEQ 9
9 NEQ 0
9 NEQ 1
9 NEQ 10
0 GEQ 0
1 GEQ 0
10 GEQ 0
9 GEQ 0
1 GEQ 1
10 GEQ 0
10 GEQ 1
9 GEQ 1
10 GEQ 10
10 GEQ 9
9 GEQ 0
9 GEQ 1
9 GEQ 9
1 GTR 0
10 GTR 0
9 GTR 0
10 GTR 1
9 GTR 1
10 GTR 9
9 GTR 0
9 GTR 1
------ for numbers and stringified numbers
strings and integers not equal
strings and integers not equal