log: introduce init_log_defaults()
[gitweb.git] / test-path-utils.c
index 4ab68aca566a8c440239889f76a916772f8f6122..6232dfe661a53d1eaf17ead5133da5792ae2413f 100644 (file)
@@ -42,6 +42,7 @@ static void normalize_argv_string(const char **var, const char *input)
 struct test_data {
        const char *from;  /* input:  transform from this ... */
        const char *to;    /* output: ... to this.            */
+       const char *alternative; /* output: ... or this.      */
 };
 
 static int test_function(struct test_data *data, char *(*func)(char *input),
@@ -55,14 +56,21 @@ static int test_function(struct test_data *data, char *(*func)(char *input),
                if (!data[i].from)
                        to = func(NULL);
                else {
-                       strcpy(buffer, data[i].from);
+                       xsnprintf(buffer, sizeof(buffer), "%s", data[i].from);
                        to = func(buffer);
                }
-               if (strcmp(to, data[i].to)) {
+               if (!strcmp(to, data[i].to))
+                       continue;
+               if (!data[i].alternative)
                        error("FAIL: %s(%s) => '%s' != '%s'\n",
                                funcname, data[i].from, to, data[i].to);
-                       failed = 1;
-               }
+               else if (!strcmp(to, data[i].alternative))
+                       continue;
+               else
+                       error("FAIL: %s(%s) => '%s' != '%s', '%s'\n",
+                               funcname, data[i].from, to, data[i].to,
+                               data[i].alternative);
+               failed = 1;
        }
        return failed;
 }
@@ -74,15 +82,9 @@ static struct test_data basename_data[] = {
        { ".",               "."    },
        { "..",              ".."   },
        { "/",               "/"    },
-#if defined(__CYGWIN__) && !defined(NO_LIBGEN_H)
-       { "//",              "//"   },
-       { "///",             "//"   },
-       { "////",            "//"   },
-#else
-       { "//",              "/"    },
-       { "///",             "/"    },
-       { "////",            "/"    },
-#endif
+       { "//",              "/", "//" },
+       { "///",             "/", "//" },
+       { "////",            "/", "//" },
        { "usr",             "usr"  },
        { "/usr",            "usr"  },
        { "/usr/",           "usr"  },
@@ -92,7 +94,6 @@ static struct test_data basename_data[] = {
        { "usr/lib///",      "lib"  },
 
 #if defined(__MINGW32__) || defined(_MSC_VER)
-
        /* --- win32 type paths --- */
        { "\\usr",           "usr"  },
        { "\\usr\\",         "usr"  },
@@ -111,26 +112,9 @@ static struct test_data basename_data[] = {
        { "C:a",             "a"    },
        { "C:/",             "/"    },
        { "C:///",           "/"    },
-#if defined(NO_LIBGEN_H)
-       { "\\",              "\\"   },
-       { "\\\\",            "\\"   },
-       { "\\\\\\",          "\\"   },
-#else
-
-       /* win32 platform variations: */
-#if defined(__MINGW32__)
-       { "\\",              "/"    },
-       { "\\\\",            "/"    },
-       { "\\\\\\",          "/"    },
-#endif
-
-#if defined(_MSC_VER)
-       { "\\",              "\\"   },
-       { "\\\\",            "\\"   },
-       { "\\\\\\",          "\\"   },
-#endif
-
-#endif
+       { "\\",              "\\", "/" },
+       { "\\\\",            "\\", "/" },
+       { "\\\\\\",          "\\", "/" },
 #endif
        { NULL,              NULL   }
 };
@@ -142,14 +126,9 @@ static struct test_data dirname_data[] = {
        { ".",               "."      },
        { "..",              "."      },
        { "/",               "/"      },
-       { "//",              "//"     },
-#if defined(__CYGWIN__) && !defined(NO_LIBGEN_H)
-       { "///",             "//"     },
-       { "////",            "//"     },
-#else
-       { "///",             "/"      },
-       { "////",            "/"      },
-#endif
+       { "//",              "/", "//" },
+       { "///",             "/", "//" },
+       { "////",            "/", "//" },
        { "usr",             "."      },
        { "/usr",            "/"      },
        { "/usr/",           "/"      },
@@ -159,7 +138,6 @@ static struct test_data dirname_data[] = {
        { "usr/lib///",      "usr"    },
 
 #if defined(__MINGW32__) || defined(_MSC_VER)
-
        /* --- win32 type paths --- */
        { "\\",              "\\"     },
        { "\\\\",            "\\\\"   },
@@ -180,21 +158,7 @@ static struct test_data dirname_data[] = {
        { "C:usr/lib///",    "C:usr"  },
        { "\\\\\\",          "\\"     },
        { "\\\\\\\\",        "\\"     },
-#if defined(NO_LIBGEN_H)
-       { "C:",              "C:."    },
-#else
-
-       /* win32 platform variations: */
-#if defined(__MINGW32__)
-       /* the following is clearly wrong ... */
-       { "C:",              "."      },
-#endif
-
-#if defined(_MSC_VER)
-       { "C:",              "C:."    },
-#endif
-
-#endif
+       { "C:",              "C:.", "." },
 #endif
        { NULL,              NULL     }
 };