From 5fe0f1e1dc372d75ca5d9443c54e3fda80d9183e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20Delanoy?= Date: Thu, 28 Jul 2011 01:06:45 +0200 Subject: [PATCH] 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 2715b118515..84d7f39ba69 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 572fb386e26..1b3bbcb8ff2 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 d10aa4ced07..d06c4cffd54 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@ "/?" -@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 -- 2.11.4.GIT