Frédéric Delanoy : cmd/tests: Fix test runner so it catches cases where an output line contains the associated expected line as prefix .
Alexandre Julliard
julliard at winehq.org
Thu Jul 28 13:55:46 CDT 2011
Module: wine
Branch: master
Commit: 5fe0f1e1dc372d75ca5d9443c54e3fda80d9183e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5fe0f1e1dc372d75ca5d9443c54e3fda80d9183e
Author: Frédéric Delanoy <frederic.delanoy at gmail.com>
Date: Thu Jul 28 01:06:45 2011 +0200
cmd/tests: Fix test runner so it catches cases where an output line contains the associated expected line as prefix.
---
programs/cmd/tests/batch.c | 10 +++++++++-
programs/cmd/tests/test_builtins.cmd | 8 ++++----
programs/cmd/tests/test_builtins.cmd.exp | 12 ++++++------
3 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/programs/cmd/tests/batch.c b/programs/cmd/tests/batch.c
index 2715b11..84d7f39 100644
--- a/programs/cmd/tests/batch.c
+++ b/programs/cmd/tests/batch.c
@@ -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);
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
index 572fb38..1b3bbcb 100644
--- a/programs/cmd/tests/test_builtins.cmd
+++ b/programs/cmd/tests/test_builtins.cmd
@@ -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
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
index d10aa4c..d06c4cf 100644
--- a/programs/cmd/tests/test_builtins.cmd.exp
+++ b/programs/cmd/tests/test_builtins.cmd.exp
@@ -18,13 +18,13 @@ at-echoed-word
@pwd@>echo "/?"@space@
"/?"
- at pwd@>echo.
+ at todo_wine@@pwd@>echo.
@pwd@>echo . at space@
.
- at pwd@>echo.word
+ at todo_wine@@pwd@>echo.word
word
@pwd@>echo .word at space@
@@ -100,7 +100,7 @@ FOOBAR = baz
bar
@todo_wine at FOOBAR= bar
@todo_wine at 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 at CD value
+CD value @pwd@@or_broken at CD value at space@
%
P
P
@@ -236,8 +236,8 @@ bar removed
foobar removed
bar\baz removed
------------ Testing CALL --------------
-foo
-foo 8
+foo at space@
+ at todo_wine@foo 8
bar :testRoutine
@todo_wine at 0
@todo_wine at foo created
More information about the wine-cvs
mailing list