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
This commit is contained in:
Esteban Manchado Velázquez 2012-02-10 23:33:37 +01:00 committed by Nick Mathewson
parent 275b81ec5d
commit 22a915bcd2

View File

@ -1652,24 +1652,40 @@ test_util_parent_dir(void *ptr)
char *cp; char *cp;
(void)ptr; (void)ptr;
#define T(input,expect_ok,output) \ #define T(output,expect_ok,input) \
do { \ do { \
int ok; \ int ok; \
cp = tor_strdup(input); \ cp = tor_strdup(input); \
ok = get_parent_directory(cp); \ ok = get_parent_directory(cp); \
tt_int_op(ok, ==, expect_ok); \ tt_int_op(expect_ok, ==, ok); \
if (ok==0) \ if (ok==0) \
tt_str_op(cp, ==, output); \ tt_str_op(output, ==, cp); \
tor_free(cp); \ tor_free(cp); \
} while (0); } while (0);
T("/home/wombat/knish", 0, "/home/wombat"); T("/home/wombat", 0, "/home/wombat/knish");
T("/home/wombat/knish/", 0, "/home/wombat"); T("/home/wombat", 0, "/home/wombat/knish/");
T("./home/wombat/knish/", 0, "./home/wombat"); T("/home/wombat", 0, "/home/wombat/knish///");
T("./wombat", 0, "."); 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, "////");
T("", -1, "wombat");
T("", -1, "wombat/");
done: done:
tor_free(cp); tor_free(cp);