Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
e3b5b6fd
Commit
e3b5b6fd
authored
Oct 23, 2012
by
Frédéric Delanoy
Committed by
Alexandre Julliard
Oct 23, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmd/tests: Add tests for LSS comparison operator in "if" statements.
parent
0146b556
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
99 additions
and
8 deletions
+99
-8
test_builtins.cmd
programs/cmd/tests/test_builtins.cmd
+59
-4
test_builtins.cmd.exp
programs/cmd/tests/test_builtins.cmd.exp
+40
-4
No files found.
programs/cmd/tests/test_builtins.cmd
View file @
e3b5b6fd
...
...
@@ -607,7 +607,7 @@ if exist foo (
cd .. & rd foobar
echo ------------ Testing if/else ------------
echo if/else should work with blocks
echo
---
if/else should work with blocks
if 0 == 0 (
echo if seems to work
) else (
...
...
@@ -623,19 +623,22 @@ if /c==/c (
) else (
echo parameter detection seems to be broken
)
echo Testing case sensitivity with and without /i option
echo --- case sensitivity with and without /i option
if bar==BAR echo if does not default to case sensitivity
if not bar==BAR echo if seems to default to case sensitivity
if /i foo==FOO echo if /i seems to work
if /i not foo==FOO echo if /i seems to be broken
if /I foo==FOO echo if /I seems to work
if /I not foo==FOO echo if /I seems to be broken
echo Testing string comparisons
echo --- string comparisons
if abc == abc (echo equal) else echo non equal
if abc =="abc" (echo equal) else echo non equal
if "abc"== abc (echo equal) else echo non equal
if "abc"== "abc" (echo equal) else echo non equal
echo Testing tabs handling
echo --- tabs handling
if@tab@1==1 echo doom
if @tab@1==1 echo doom
if 1==1 (echo doom) else@tab@echo quake
...
...
@@ -644,6 +647,58 @@ if 1==0@tab@(echo doom) else echo quake
if 1==0 (echo doom)@tab@else echo quake
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
rem can't test those here.
if LSS LSS LSSfoo (echo LSS string can be used as operand for LSS comparison)
if LSS LSS LSS (echo bar)
if 1.1 LSS 1.10 (echo floats are handled as strings)
if "9" LSS "10" (echo numbers in quotes recognized!) else echo numbers in quotes are handled as strings
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
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
if /I b LSS A echo b LSS A insensitive
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
echo ------ for numbers
if -1 LSS 1 (echo negative numbers handled)
if not -1 LSS -10 (echo negative numbers handled)
if not 9 LSS 010 (echo octal handled)
if not -010 LSS -8 (echo also in negative form)
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
goto :endIfCompOpsSubroutines
rem IF subroutines helpers
:LSStest
if %1 LSS %2 echo %1 LSS %2
goto :eof
:endIfCompOpsSubroutines
set STR_PARMS=
set INT_PARMS=
echo ------------ Testing for ------------
echo --- plain FOR
for %%i in (A B C) do echo %%i
...
...
programs/cmd/tests/test_builtins.cmd.exp
View file @
e3b5b6fd
...
...
@@ -417,20 +417,20 @@ bar
NUL
@todo_wine@foo created
------------ Testing if/else ------------
if/else should work with blocks
---
if/else should work with blocks
if seems to work
else seems to work
if seems not to detect /c as parameter
Testing
case sensitivity with and without /i option
---
case sensitivity with and without /i option
if seems to default to case sensitivity
if /i seems to work
if /I seems to work
Testing
string comparisons
---
string comparisons
equal
non equal
non equal
equal
Testing
tabs handling
---
tabs handling
doom
doom
doom
...
...
@@ -438,6 +438,42 @@ lol
quake
quake
quake
--- comparison operators
------ for strings
LSS string can be used as operand for LSS comparison
@todo_wine@floats are handled as strings
@todo_wine@numbers in quotes are handled as strings
@todo_wine@negative numbers as well@or_broken@NT4
@todo_wine@if /i seems to work for LSS
@todo_wine@A LSS B
@todo_wine@AB LSS B
@todo_wine@AA LSS B
@todo_wine@A LSS AB
@todo_wine@AA LSS AB
@todo_wine@A LSS BA
@todo_wine@B LSS BA
@todo_wine@AB LSS BA
@todo_wine@AA LSS BA
@todo_wine@A LSS AA
@todo_wine@b LSS B@or_broken@NT4
@todo_wine@a LSS B@or_broken@NT4
@todo_wine@a LSS B insensitive
@todo_wine@A LSS b
@todo_wine@A LSS b insensitive
------ for numbers
negative numbers handled
negative numbers handled
octal handled
also in negative form
hexa handled
also in negative form
11 LSS 101
@todo_wine@0 LSS 1
@todo_wine@0 LSS 10
@todo_wine@1 LSS 10
@todo_wine@9 LSS 10
@todo_wine@0 LSS 9
@todo_wine@1 LSS 9
------------ Testing for ------------
--- plain FOR
A
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment