From: Hugh McMaster Subject: [PATCH v2] cmd/tests: Add tests for 'del' (Fixes bug 35970) Message-Id: Date: Tue, 11 Nov 2014 21:24:51 +1100 Wine currently returns an errorlevel of 1 when trying to delete a non-existent file. Testing reveals 0 is the correct return value for all versions of Windows, except Windows 2000 (which does actually return 1). Note that the DWORD errorlevel is set to 0 before this change. -        if (!found) { -            errorlevel = 1; +        if (!found) This patch fixes bug 35970. From 1e26bcc79dbd46c135ba2dca72df9f87a5a1e4e4 Mon Sep 17 00:00:00 2001 From: Hugh McMaster Date: Tue, 11 Nov 2014 21:03:01 +1100 Subject: [PATCH] cmd/tests: Add tests for 'del' --- programs/cmd/builtins.c | 4 +--- programs/cmd/tests/test_builtins.cmd | 9 +++++++++ programs/cmd/tests/test_builtins.cmd.exp | 3 +++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index 6751d3e..56c87e3 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -1409,10 +1409,8 @@ BOOL WCMD_delete (WCHAR *args) { argsProcessed = TRUE; found = WCMD_delete_one(thisArg); - if (!found) { - errorlevel = 1; + if (!found) WCMD_output_stderr(WCMD_LoadMessage(WCMD_FILENOTFOUND), thisArg); - } foundAny |= found; } diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd index 16fdd43..bcc758c 100644 --- a/programs/cmd/tests/test_builtins.cmd +++ b/programs/cmd/tests/test_builtins.cmd @@ -1447,6 +1447,15 @@ for /f "tokens=3,2,3*" %%i in ("a b c d e f g") do echo h=%%h i=%%i j=%%j k=%%k cd .. rd /s/q foobar +echo ------------ Testing del ------------ +echo nul > test.tmp +del test.tmp +echo ErrorLevel: %ErrorLevel% +rem Now try deleting a non-existant file. +del test.tmp 2> nul +rem %ErrorLevel% should be zero, except for Windows 2000, which returns 1. +echo ErrorLevel: %ErrorLevel% + echo ------------ Testing del /a ------------ del /f/q *.test > nul echo r > r.test diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index 828a651..5526b11 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -990,6 +990,9 @@ h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o@or_broken@h=%h i=a j=b k=c l=d e f g m h=%h i=a j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=a j=c k= l= m= n=%n o=%o h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o +------------ Testing del ------------ +ErrorLevel: 0 +ErrorLevel: 0@or_broken@ErrorLevel: 1 ------------ Testing del /a ------------ not-r.test not found after delete, good r.test found before delete, good -- 1.9.1