Module: wine Branch: master Commit: dc8ef75904c0cace22f75b201c2c9f7c8b0f5cb1 URL: https://source.winehq.org/git/wine.git/?a=commit;h=dc8ef75904c0cace22f75b201...
Author: Francois Gouget fgouget@codeweavers.com Date: Mon Jul 19 15:16:59 2021 +0200
winetest: Create the -d directory if it does not exist already.
'winetest.exe' automatically creates '%TEMP%\wct' (or an alternative new directory). 'winetext.exe -x DIR' automatically creates DIR. 'winetest.exe -d DIR' now automatically creates DIR too. In all cases newly created directories are removed after the tests.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
programs/winetest/main.c | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/programs/winetest/main.c b/programs/winetest/main.c index 81c7de2a020..fa773e28d4f 100644 --- a/programs/winetest/main.c +++ b/programs/winetest/main.c @@ -1024,6 +1024,7 @@ run_tests (char *logname, char *outdir) DWORD strsize; SECURITY_ATTRIBUTES sa; char tmppath[MAX_PATH], tempdir[MAX_PATH+4]; + BOOL newdir; DWORD needed; HMODULE kernel32;
@@ -1064,22 +1065,23 @@ run_tests (char *logname, char *outdir) if (logfile == INVALID_HANDLE_VALUE) report (R_FATAL, "Could not open logfile: %u", GetLastError());
- /* try stable path for ZoneAlarm */ - if (!outdir) { + if (outdir) + strcpy( tempdir, outdir); + else + { strcpy( tempdir, tmppath ); - strcat( tempdir, "wct" ); - - if (!CreateDirectoryA( tempdir, NULL )) - { - if (!GetTempFileNameA( tmppath, "wct", 0, tempdir )) - report (R_FATAL, "Can't name temporary dir (check %%TEMP%%)."); - DeleteFileA( tempdir ); - if (!CreateDirectoryA( tempdir, NULL )) - report (R_FATAL, "Could not create directory: %s", tempdir); - } + strcat( tempdir, "wct" ); /* try stable path for ZoneAlarm */ } - else - strcpy( tempdir, outdir); + newdir = CreateDirectoryA( tempdir, NULL ); + if (!newdir && !outdir) + { + if (!GetTempFileNameA( tmppath, "wct", 0, tempdir )) + report (R_FATAL, "Can't name temporary dir (check %%TEMP%%)."); + DeleteFileA( tempdir ); + newdir = CreateDirectoryA( tempdir, NULL ); + } + if (!newdir && (!outdir || GetLastError() != ERROR_ALREADY_EXISTS)) + report (R_FATAL, "Could not create directory %s (%d)", tempdir, GetLastError());
report (R_DIR, tempdir);
@@ -1172,7 +1174,7 @@ run_tests (char *logname, char *outdir) report (R_STATUS, "Cleaning up - %u failures", failures); CloseHandle( logfile ); logfile = 0; - if (!outdir) + if (newdir) remove_dir (tempdir); heap_free(wine_tests); heap_free(curpath);