Nicolas Le Cam : winetest: Add option -d to specify tests output directory.

Alexandre Julliard julliard at winehq.org
Mon Jun 1 10:01:05 CDT 2009


Module: wine
Branch: master
Commit: 55b51f3b1e39e962beb513464cfcb4721922a0a0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=55b51f3b1e39e962beb513464cfcb4721922a0a0

Author: Nicolas Le Cam <niko.lecam at gmail.com>
Date:   Sun May 31 13:43:52 2009 +0200

winetest: Add option -d to specify tests output directory.

---

 programs/winetest/main.c |   37 ++++++++++++++++++++++++-------------
 1 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/programs/winetest/main.c b/programs/winetest/main.c
index 381328c..7009ce8 100644
--- a/programs/winetest/main.c
+++ b/programs/winetest/main.c
@@ -612,7 +612,7 @@ extract_test_proc (HMODULE hModule, LPCTSTR lpszType,
 }
 
 static char *
-run_tests (char *logname)
+run_tests (char *logname, char *outdir)
 {
     int i;
     char *strres, *eol, *nextline;
@@ -659,16 +659,22 @@ run_tests (char *logname)
         report (R_FATAL, "Could not open logfile: %u", GetLastError());
 
     /* try stable path for ZoneAlarm */
-    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 (!outdir) {
+        strcpy( tempdir, tmppath );
+        strcat( tempdir, "wct" );
+
         if (!CreateDirectoryA( tempdir, NULL ))
-            report (R_FATAL, "Could not create directory: %s", tempdir);
+        {
+            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);
+        }
     }
+    else
+        strcpy( tempdir, outdir);
+
     report (R_DIR, tempdir);
 
     xprintf ("Version 4\n");
@@ -749,7 +755,8 @@ run_tests (char *logname)
     report (R_STATUS, "Cleaning up");
     CloseHandle( logfile );
     logfile = 0;
-    remove_dir (tempdir);
+    if (!outdir)
+        remove_dir (tempdir);
     heap_free(wine_tests);
     heap_free(curpath);
 
@@ -816,6 +823,7 @@ usage (void)
 " --help    print this message and exit\n"
 " --version print the build version and exit\n"
 " -c        console mode, no GUI\n"
+" -d DIR    Use DIR as temp directory (default: %%TEMP%%\\wct)"
 " -e        preserve the environment\n"
 " -h        print this message and exit\n"
 " -p        shutdown when the tests are done\n"
@@ -828,7 +836,7 @@ usage (void)
 
 int main( int argc, char *argv[] )
 {
-    char *logname = NULL;
+    char *logname = NULL, *outdir = NULL;
     const char *extract = NULL;
     const char *cp, *submit = NULL;
     int reset_env = 1;
@@ -915,6 +923,9 @@ int main( int argc, char *argv[] )
 
             extract_only (extract);
             break;
+        case 'd':
+            outdir = argv[++i];
+            break;
         default:
             report (R_ERROR, "invalid option: -%c", argv[i][1]);
             usage ();
@@ -953,12 +964,12 @@ int main( int argc, char *argv[] )
         }
 
         if (!logname) {
-            logname = run_tests (NULL);
+            logname = run_tests (NULL, outdir);
             if (build_id[0] && !nb_filters &&
                 report (R_ASK, MB_YESNO, "Do you want to submit the test results?") == IDYES)
                 if (!send_file (logname) && !DeleteFileA(logname))
                     report (R_WARNING, "Can't remove logfile: %u", GetLastError());
-        } else run_tests (logname);
+        } else run_tests (logname, outdir);
         report (R_STATUS, "Finished");
     }
     if (poweroff)




More information about the wine-cvs mailing list