Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Lorenzo Ferrillo
wine
Commits
e3b5b6fd
Commit
e3b5b6fd
authored
12 years ago
by
Frédéric Delanoy
Committed by
Alexandre Julliard
12 years ago
Browse files
Options
Downloads
Patches
Plain Diff
cmd/tests: Add tests for LSS comparison operator in "if" statements.
parent
0146b556
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
programs/cmd/tests/test_builtins.cmd
+59
-4
59 additions, 4 deletions
programs/cmd/tests/test_builtins.cmd
programs/cmd/tests/test_builtins.cmd.exp
+40
-4
40 additions, 4 deletions
programs/cmd/tests/test_builtins.cmd.exp
with
99 additions
and
8 deletions
programs/cmd/tests/test_builtins.cmd
+
59
−
4
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
...
...
This diff is collapsed.
Click to expand it.
programs/cmd/tests/test_builtins.cmd.exp
+
40
−
4
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
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment