Browse Source

Add unit tests for path_is_relative

Esteban Manchado Velázquez 13 years ago
parent
commit
998891e734
1 changed files with 37 additions and 0 deletions
  1. 37 0
      src/test/test_util.c

+ 37 - 0
src/test/test_util.c

@@ -1503,6 +1503,42 @@ test_util_sscanf(void)
   ;
 }
 
+static void
+test_util_path_is_relative(void)
+{
+  /* OS-independent tests */
+  test_eq(1, path_is_relative(""));
+  test_eq(1, path_is_relative("dir"));
+  test_eq(1, path_is_relative("dir/"));
+  test_eq(1, path_is_relative("./dir"));
+  test_eq(1, path_is_relative("../dir"));
+
+  test_eq(0, path_is_relative("/"));
+  test_eq(0, path_is_relative("/dir"));
+  test_eq(0, path_is_relative("/dir/"));
+
+  /* Windows */
+#ifdef MS_WINDOWS
+  /* I don't have Windows so I can't test this, hence the "#ifdef
+     0". These are tests that look useful, so please try to get them
+     running and uncomment if it all works as it should */
+#ifdef 0
+  test_eq(1, path_is_relative("dir"));
+  test_eq(1, path_is_relative("dir\\"));
+  test_eq(1, path_is_relative("dir\\a:"));
+  test_eq(1, path_is_relative("dir\\a:\\"));
+
+  test_eq(0, path_is_relative("\\dir"));
+  test_eq(0, path_is_relative("a:\\dir"));
+  test_eq(0, path_is_relative("z:\\dir"));
+  test_eq(0, path_is_relative("http:\\dir"));
+#endif
+#endif
+
+ done:
+  ;
+}
+
 /** Run unittests for memory pool allocator */
 static void
 test_util_mempool(void)
@@ -2855,6 +2891,7 @@ struct testcase_t util_tests[] = {
   UTIL_LEGACY(mmap),
   UTIL_LEGACY(threads),
   UTIL_LEGACY(sscanf),
+  UTIL_LEGACY(path_is_relative),
   UTIL_LEGACY(strtok),
   UTIL_LEGACY(di_ops),
   UTIL_TEST(find_str_at_start_of_line, 0),