소스 검색

Improve get_parent_directory unit tests

* Add more test cases to the get_parent_directory tests
* Switch the parameter order so that the expected value is the first one
Esteban Manchado Velázquez 13 년 전
부모
커밋
22a915bcd2
1개의 변경된 파일25개의 추가작업 그리고 9개의 파일을 삭제
  1. 25 9
      src/test/test_util.c

+ 25 - 9
src/test/test_util.c

@@ -1652,24 +1652,40 @@ test_util_parent_dir(void *ptr)
   char *cp;
   (void)ptr;
 
-#define T(input,expect_ok,output)               \
+#define T(output,expect_ok,input)               \
   do {                                          \
     int ok;                                     \
     cp = tor_strdup(input);                     \
     ok = get_parent_directory(cp);              \
-    tt_int_op(ok, ==, expect_ok);               \
+    tt_int_op(expect_ok, ==, ok);               \
     if (ok==0)                                  \
-      tt_str_op(cp, ==, output);                \
+      tt_str_op(output, ==, cp);                \
     tor_free(cp);                               \
   } while (0);
 
-  T("/home/wombat/knish", 0, "/home/wombat");
-  T("/home/wombat/knish/", 0, "/home/wombat");
-  T("./home/wombat/knish/", 0, "./home/wombat");
-  T("./wombat", 0, ".");
+  T("/home/wombat", 0, "/home/wombat/knish");
+  T("/home/wombat", 0, "/home/wombat/knish/");
+  T("/home/wombat", 0, "/home/wombat/knish///");
+  T("./home/wombat", 0, "./home/wombat/knish/");
+  T(".", 0, "./wombat");
+  T(".", 0, "./wombat/");
+  T(".", 0, "./wombat//");
+  T("wombat", 0, "wombat/foo");
+  T("wombat/..", 0, "wombat/../foo");
+  T("wombat/../", 0, "wombat/..//foo"); /* Is this correct? */
+  T("wombat", 0, "wombat/..//");
+  T("wombat", 0, "wombat/foo/");
+  T("wombat", 0, "wombat/.foo");
+  T("wombat", 0, "wombat/.foo/");
+
   T("", -1, "");
-  T("/", -1, "");
-  T("////", -1, "");
+  T("", -1, ".");
+  T("", -1, "..");
+  T("", -1, "../");
+  T("", -1, "/");
+  T("", -1, "////");
+  T("", -1, "wombat");
+  T("", -1, "wombat/");
 
  done:
   tor_free(cp);