[PATCH] winetest: Create the -d directory if it does not exist already.
Francois Gouget
fgouget at codeweavers.com
Mon Jul 19 08:16:59 CDT 2021
'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 at codeweavers.com>
---
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);
--
2.20.1
More information about the wine-devel
mailing list