Browse Source

When making a tempdir for windows unit tests, avoid an extra backslash

The extra \ is harmless, but mildly unpleasant.

Fixes 12392; bugfix on 0.2.2.25-alpha where we started using
GetTempDir().  Based on a patch by Gisle Vanem.
Nick Mathewson 9 years ago
parent
commit
3f683aadcd
1 changed files with 9 additions and 2 deletions
  1. 9 2
      src/test/test.c

+ 9 - 2
src/test/test.c

@@ -106,11 +106,18 @@ setup_directory(void)
   {
     char buf[MAX_PATH];
     const char *tmp = buf;
+    const char *extra_backslash = "";
     /* If this fails, we're probably screwed anyway */
     if (!GetTempPathA(sizeof(buf),buf))
-      tmp = "c:\\windows\\temp";
+      tmp = "c:\\windows\\temp\\";
+    if (strcmpend(tmp, "\\")) {
+      /* According to MSDN, it should be impossible for GetTempPath to give us
+       * an answer that doesn't end with \.  But let's make sure. */
+      extra_backslash = "\\";
+    }
     tor_snprintf(temp_dir, sizeof(temp_dir),
-                 "%s\\tor_test_%d_%s", tmp, (int)getpid(), rnd32);
+                 "%s%stor_test_%d_%s", tmp, extra_backslash,
+                 (int)getpid(), rnd32);
     r = mkdir(temp_dir);
   }
 #else