cmd/tests: Fix test runner so it catches cases where an output line contains the associated expected line as prefix.
This commit is contained in:
parent
81bf925401
commit
5fe0f1e1dc
|
@ -200,7 +200,12 @@ static const char *compare_line(const char *out_line, const char *out_end, const
|
|||
out_ptr++;
|
||||
}
|
||||
|
||||
return exp_ptr == exp_end ? NULL : out_ptr;
|
||||
if(exp_ptr != exp_end)
|
||||
return out_ptr;
|
||||
else if(out_ptr != out_end)
|
||||
return exp_end;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void test_output(const char *out_data, DWORD out_size, const char *exp_data, DWORD exp_size)
|
||||
|
@ -227,6 +232,9 @@ static void test_output(const char *out_data, DWORD out_size, const char *exp_da
|
|||
if(err == out_nl)
|
||||
ok(0, "unexpected end of line %d (got '%.*s', wanted '%.*s')\n",
|
||||
line, (int)(out_nl-out_ptr), out_ptr, (int)(exp_nl-exp_ptr), exp_ptr);
|
||||
else if(err == exp_nl)
|
||||
ok(0, "excess characters on line %d (got '%.*s', wanted '%.*s')\n",
|
||||
line, (int)(out_nl-out_ptr), out_ptr, (int)(exp_nl-exp_ptr), exp_ptr);
|
||||
else
|
||||
ok(!err, "unexpected char 0x%x position %d in line %d (got '%.*s', wanted '%.*s')\n",
|
||||
(err ? *err : 0), (err ? (int)(err-out_ptr) : -1), line, (int)(out_nl-out_ptr), out_ptr, (int)(exp_nl-exp_ptr), exp_ptr);
|
||||
|
|
|
@ -263,10 +263,10 @@ goto :eof
|
|||
:endForTestFun1
|
||||
for %%i in (X) do (
|
||||
for %%j in (Y) do (
|
||||
echo %%i %%j ))
|
||||
echo %%i %%j))
|
||||
for %%i in (A B) do (
|
||||
for %%j in (C D) do (
|
||||
echo %%i %%j ))
|
||||
echo %%i %%j))
|
||||
for %%i in (A B) do (
|
||||
for %%j in (C D) do (
|
||||
call :forTestFun2 %%i %%j ))
|
||||
|
@ -478,7 +478,7 @@ rd /s/q foobaz
|
|||
echo ------------ Testing CALL --------------
|
||||
mkdir foobar & cd foobar
|
||||
rem External script
|
||||
echo echo foo %%1 > foo.cmd
|
||||
echo echo foo %%1> foo.cmd
|
||||
call foo
|
||||
call foo.cmd 8
|
||||
del foo.cmd
|
||||
|
@ -510,7 +510,7 @@ call :setError 0
|
|||
call for %%i in (foo bar baz) do echo %%i 2> nul
|
||||
echo %ErrorLevel%
|
||||
rem First look for programs in the path before trying a builtin
|
||||
echo echo non-builtin dir > dir.cmd
|
||||
echo echo non-builtin dir> dir.cmd
|
||||
call dir /b
|
||||
cd ..
|
||||
rd /s/q foobar
|
||||
|
|
|
@ -18,13 +18,13 @@ at-echoed-word
|
|||
@pwd@>echo "/?"@space@
|
||||
"/?"
|
||||
|
||||
@pwd@>echo.
|
||||
@todo_wine@@pwd@>echo.
|
||||
|
||||
|
||||
@pwd@>echo .@space@
|
||||
.
|
||||
|
||||
@pwd@>echo.word
|
||||
@todo_wine@@pwd@>echo.word
|
||||
word
|
||||
|
||||
@pwd@>echo .word@space@
|
||||
|
@ -100,7 +100,7 @@ FOOBAR = baz
|
|||
bar
|
||||
@todo_wine@FOOBAR= bar
|
||||
@todo_wine@FOOBAR = baz2
|
||||
FOOBAR = baz
|
||||
FOOBAR = baz2
|
||||
FOOBAR not defined
|
||||
1
|
||||
bar
|
||||
|
@ -114,7 +114,7 @@ bar
|
|||
~dp0 should be directory containing batch file
|
||||
@pwd@\
|
||||
@pwd@\
|
||||
CD value @pwd@@or_broken@CD value
|
||||
CD value @pwd@@or_broken@CD value@space@
|
||||
%
|
||||
P
|
||||
P
|
||||
|
@ -236,8 +236,8 @@ bar removed
|
|||
foobar removed
|
||||
bar\baz removed
|
||||
------------ Testing CALL --------------
|
||||
foo
|
||||
foo 8
|
||||
foo@space@
|
||||
@todo_wine@foo 8
|
||||
bar :testRoutine
|
||||
@todo_wine@0
|
||||
@todo_wine@foo created
|
||||
|
|
Loading…
Reference in New Issue