Sweden-Number/programs/cmd/tests/test_builtins.cmd.exp

243 lines
4.1 KiB
Plaintext

@pwd@>echo Tests for cmd's builtin commands@space@
Tests for cmd's builtin commands
@pwd@>echo ------------ Testing 'echo' [ON] --------------@space@
------------ Testing 'echo' [ON] --------------
@pwd@>echo word@space@
word
@pwd@>echo 'singlequotedword'@space@
'singlequotedword'
@pwd@>echo "doublequotedword"@space@
"doublequotedword"
at-echoed-word
@pwd@>echo "/?"@space@
"/?"
@pwd@>echo.
@pwd@>echo .@space@
.
@pwd@>echo.word
word
@pwd@>echo .word@space@
.word
@pwd@>echo word@space@@space@
word@space@
@pwd@>echo word@space@@space@@space@
word@space@@space@
------------ Testing 'echo' [OFF] --------------
word
'singlequotedword'
"doublequotedword"
at-echoed-word
"/?"
.
word
.word
word@space@
word@space@@space@
@todo_wine@------------ Testing ^ escape character --------------
@todo_wine@hello, world
@todo_wine@hello, world
@todo_wine@hell^o, world
@todo_wine@hell^o, world
baz
@todo_wine@baz
@todo_wine@foo | echo bar
@todo_wine@foo & echo bar
@todo_wine@bak &
@todo_wine@baz@space@
@todo_wine@0@or_broken@1
@todo_wine@foo > foo
@todo_wine@<
@todo_wine@ffoof
@todo_wine@FOO=bar | baz
@todo_wine@0
@todo_wine@FOO=bar ^| baz
@todo_wine@bar | baz
@todo_wine@0
------------ Testing 'set' --------------
1
@todo_wine@0
FOOBAR not defined
@todo_wine@ baz
FOOBAR = baz
@todo_wine@0
@todo_wine@ baz2
@todo_wine@0
bar
@todo_wine@FOOBAR= bar
@todo_wine@FOOBAR = baz2
FOOBAR = baz
FOOBAR not defined
1
bar
foobar
FOO not defined
BAZ=bazbaz
bazbaz
set "FOO=bar" should not include the quotes in the variable value
bar
------------ Testing variable expansion --------------
~dp0 should be directory containing batch file
@pwd@\
@pwd@\
CD value @pwd@@or_broken@CD value
%
P
P
S
P
PS
ERRORLEVEL
0
00
0ERRORLEVEL
0
0%
P0
0S
P0S
------------ Testing conditional execution --------------
@todo_wine@...unconditional &
foo1
bar2@space@
foo2
@todo_wine@foobar deleted
@todo_wine@...on success conditional &&
@todo_wine@foo3 not created
bar4@space@
foo4
@todo_wine@...on failure conditional ||
@todo_wine@foo5
@todo_wine@foo6@space@
------------ Testing type ------------
@pwd@>type foobaz@space@
bar
@pwd@>echo ***@space@
***
bar
***
------------ Testing NUL ------------
bar
bar
bar
NUL
@todo_wine@foo created
------------ Testing if/else --------------
if/else should work with blocks
if seems to work
else seems to work
@todo_wine@if seems not to detect /c as parameter
Testing 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 for -----------
A
B
C
A
B
C
@todo_wine@X Y
@todo_wine@A C
@todo_wine@A D
@todo_wine@B C
@todo_wine@B D
@todo_wine@A C
@todo_wine@A D
@todo_wine@B C
@todo_wine@B D
-----------Testing del /a-----------
not-r.test not found after delete, good
r.test found before delete, good
r.test not found after delete, good
------------ Testing del /q --------------
del /q * succeeded on file1
del /q * succeeded on file2.dat
------------ Testing del /s --------------
----------- Testing mkdir -----------
0
0
@todo_wine@1
@todo_wine@1
0
0
0
0
0
@todo_wine@1
0
0
0
dir created
0
@todo_wine@1
@todo_wine@1
@todo_wine@1
@todo_wine@ok, foo created
@todo_wine@1
@todo_wine@ok, foo\bar created
foo created
@todo_wine@bar created
@todo_wine@foobar created
@todo_wine@bar\baz created
----------- Testing rmdir -----------
0
dir removed
0
dir removed
0
0
file not removed
0
non-empty dir not removed
0
non-empty dir not removed
recursive rmdir succeeded
recursive rmdir succeeded
foo removed
bar removed
foobar removed
bar\baz removed
------------ Testing CALL --------------
foo
foo 8
bar :testRoutine
@todo_wine@0
@todo_wine@foo created
@todo_wine@Should expand foobaz
@todo_wine@batfile
@todo_wine@robinfile
@todo_wine@1
@todo_wine@1
non-builtin dir
-----------Testing Errorlevel-----------
9009
1
errorlevel just right, good
abc0def@or_broken@abc1def
errorlevel zero, good@or_broken@errorlevel nonzero, bad
7 should be 7
7 should still be 7
-----------Testing GOTO-----------
goto with no leading space worked
goto with a leading space worked
goto with a leading tab worked
goto with a following space worked
-----------Done, jumping to EOF-----------