hu Jul 25 14:23:15 2002 Owen Taylor <otaylor@redhat.com>

* glib/gfileutils.c: Clarify the behavior of g_build_path()
        for empty elements and for leading and trailing copies
        of the separator in the docs.

        * glib/gfileutils.c: Fix problems with leading elements
        consisting only of "/" characters. (#85928, Guillaume Chazarain)

        * tests/strfunc-test.c (main): Add more test cases
        for g_build_filename().
This commit is contained in:
Owen Taylor
2002-07-26 19:59:07 +00:00
parent 1bb885b3b2
commit 8dd32f5703
9 changed files with 193 additions and 15 deletions

View File

@@ -41,7 +41,7 @@ if (failed) \
{ if (!m) \
g_print ("(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \
else \
g_print ("(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \
g_print ("(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), m ? (gchar*)m : ""); \
fflush (stdout); \
any_failed = TRUE; \
} \
@@ -343,25 +343,50 @@ main (int argc,
TEST (NULL, str_check (g_build_path (":", ":", NULL), ":"));
TEST (NULL, str_check (g_build_path (":", ":x", NULL), ":x"));
TEST (NULL, str_check (g_build_path (":", "x:", NULL), "x:"));
TEST (NULL, str_check (g_build_path (":", "", "x", NULL), "x"));
TEST (NULL, str_check (g_build_path (":", "", ":x", NULL), ":x"));
TEST (NULL, str_check (g_build_path (":", ":", "x", NULL), ":x"));
TEST (NULL, str_check (g_build_path (":", "::", "x", NULL), "::x"));
TEST (NULL, str_check (g_build_path (":", "x", "", NULL), "x"));
TEST (NULL, str_check (g_build_path (":", "x:", "", NULL), "x:"));
TEST (NULL, str_check (g_build_path (":", "x", ":", NULL), "x:"));
TEST (NULL, str_check (g_build_path (":", "x", "::", NULL), "x::"));
TEST (NULL, str_check (g_build_path (":", "x", "y", NULL), "x:y"));
TEST (NULL, str_check (g_build_path (":", ":x", "y", NULL), ":x:y"));
TEST (NULL, str_check (g_build_path (":", "x", "y:", NULL), "x:y:"));
TEST (NULL, str_check (g_build_path (":", ":x:", ":y:", NULL), ":x:y:"));
TEST (NULL, str_check (g_build_path (":", ":x::", "::y:", NULL), ":x:y:"));
TEST (NULL, str_check (g_build_path (":", "x", "","y", NULL), "x:y"));
TEST (NULL, str_check (g_build_path (":", "x", ":", "y", NULL), "x:y"));
TEST (NULL, str_check (g_build_path (":", "x", "::", "y", NULL), "x:y"));
TEST (NULL, str_check (g_build_path (":", "x", "y", "z", NULL), "x:y:z"));
TEST (NULL, str_check (g_build_path (":", ":x:", ":y:", ":z:", NULL), ":x:y:z:"));
TEST (NULL, str_check (g_build_path (":", "::x::", "::y::", "::z::", NULL), "::x:y:z::"));
TEST (NULL, str_check (g_build_path ("::", NULL), ""));
TEST (NULL, str_check (g_build_path ("::", "::", NULL), "::"));
TEST (NULL, str_check (g_build_path ("::", ":::", NULL), ":::"));
TEST (NULL, str_check (g_build_path ("::", "::x", NULL), "::x"));
TEST (NULL, str_check (g_build_path ("::", "x::", NULL), "x::"));
TEST (NULL, str_check (g_build_path ("::", "", "x", NULL), "x"));
TEST (NULL, str_check (g_build_path ("::", "", "::x", NULL), "::x"));
TEST (NULL, str_check (g_build_path ("::", "::", "x", NULL), "::x"));
TEST (NULL, str_check (g_build_path ("::", "::::", "x", NULL), "::::x"));
TEST (NULL, str_check (g_build_path ("::", "x", "", NULL), "x"));
TEST (NULL, str_check (g_build_path ("::", "x::", "", NULL), "x::"));
TEST (NULL, str_check (g_build_path ("::", "x", "::", NULL), "x::"));
/* This following is weird, but keeps the definition simple */
TEST (NULL, str_check (g_build_path ("::", "x", ":::", NULL), "x:::::"));
TEST (NULL, str_check (g_build_path ("::", "x", "::::", NULL), "x::::"));
TEST (NULL, str_check (g_build_path ("::", "x", "y", NULL), "x::y"));
TEST (NULL, str_check (g_build_path ("::", "::x", "y", NULL), "::x::y"));
TEST (NULL, str_check (g_build_path ("::", "x", "y::", NULL), "x::y::"));
TEST (NULL, str_check (g_build_path ("::", "::x::", "::y::", NULL), "::x::y::"));
TEST (NULL, str_check (g_build_path ("::", "::x:::", ":::y::", NULL), "::x::::y::"));
TEST (NULL, str_check (g_build_path ("::", "::x::::", "::::y::", NULL), "::x::y::"));
TEST (NULL, str_check (g_build_path ("::", "x", "", "y", NULL), "x::y"));
TEST (NULL, str_check (g_build_path ("::", "x", "::", "y", NULL), "x::y"));
TEST (NULL, str_check (g_build_path ("::", "x", "::::", "y", NULL), "x::y"));
TEST (NULL, str_check (g_build_path ("::", "x", "y", "z", NULL), "x::y::z"));
TEST (NULL, str_check (g_build_path ("::", "::x::", "::y::", "::z::", NULL), "::x::y::z::"));
TEST (NULL, str_check (g_build_path ("::", ":::x:::", ":::y:::", ":::z:::", NULL), ":::x::::y::::z:::"));
@@ -373,11 +398,22 @@ main (int argc,
TEST (NULL, str_check (g_build_filename (S, NULL), S));
TEST (NULL, str_check (g_build_filename (S"x", NULL), S"x"));
TEST (NULL, str_check (g_build_filename ("x"S, NULL), "x"S));
TEST (NULL, str_check (g_build_filename ("", "x", NULL), "x"));
TEST (NULL, str_check (g_build_filename ("", S"x", NULL), S"x"));
TEST (NULL, str_check (g_build_filename (S, "x", NULL), S"x"));
TEST (NULL, str_check (g_build_filename (S S, "x", NULL), S S"x"));
TEST (NULL, str_check (g_build_filename ("x", "", NULL), "x"));
TEST (NULL, str_check (g_build_filename ("x"S, "", NULL), "x"S));
TEST (NULL, str_check (g_build_filename ("x", S, NULL), "x"S));
TEST (NULL, str_check (g_build_filename ("x", S S, NULL), "x"S S));
TEST (NULL, str_check (g_build_filename ("x", "y", NULL), "x"S"y"));
TEST (NULL, str_check (g_build_filename (S"x", "y", NULL), S"x"S"y"));
TEST (NULL, str_check (g_build_filename ("x", "y"S, NULL), "x"S"y"S));
TEST (NULL, str_check (g_build_filename (S"x"S, S"y"S, NULL), S"x"S"y"S));
TEST (NULL, str_check (g_build_filename (S"x"S S, S S"y"S, NULL), S"x"S"y"S));
TEST (NULL, str_check (g_build_filename ("x", "", "y", NULL), "x"S"y"));
TEST (NULL, str_check (g_build_filename ("x", S, "y", NULL), "x"S"y"));
TEST (NULL, str_check (g_build_filename ("x", S S, "y", NULL), "x"S"y"));
TEST (NULL, str_check (g_build_filename ("x", "y", "z", NULL), "x"S"y"S"z"));
TEST (NULL, str_check (g_build_filename (S"x"S, S"y"S, S"z"S, NULL), S"x"S"y"S"z"S));
TEST (NULL, str_check (g_build_filename (S S"x"S S, S S"y"S S, S S"z"S S, NULL), S S"x"S"y"S"z"S S));