winetest: Report the correct source directory for program tests.
authorAlexandre Julliard <julliard@winehq.org>
Sat, 6 Feb 2010 19:36:12 +0000 (20:36 +0100)
committerAlexandre Julliard <julliard@winehq.org>
Sat, 6 Feb 2010 19:36:12 +0000 (20:36 +0100)
programs/winetest/main.c

index a20fa061ad1106aa7d1009b824fab495c9a11a5a..e0b9ced38d6f7f72ec78ea551e7410f3ca5920a4 100644 (file)
@@ -300,16 +300,24 @@ static const char* get_test_source_file(const char* test, const char* subtest)
        { 0, 0 }
     };
     static char buffer[MAX_PATH];
-    int i;
+    int i, len = strlen(test);
+
+    if (len > 4 && !strcmp( test + len - 4, ".exe" ))
+    {
+        len = sprintf(buffer, "programs/%s", test) - 4;
+        buffer[len] = 0;
+    }
+    else len = sprintf(buffer, "dlls/%s", test);
 
     for (i = 0; special_dirs[i][0]; i++) {
        if (strcmp(test, special_dirs[i][0]) == 0) {
-           test = special_dirs[i][1];
+            strcpy( buffer, special_dirs[i][1] );
+            len = strlen(buffer);
            break;
        }
     }
 
-    snprintf(buffer, sizeof(buffer), "dlls/%s/tests/%s.c", test, subtest);
+    sprintf(buffer + len, "/tests/%s.c", subtest);
     return buffer;
 }