mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-10-05 05:09:21 +02:00
Add test for g_path_skip_root().
2001-01-05 Tor Lillqvist <tml@iki.fi> * testglib.c (main): Add test for g_path_skip_root(). * gutils.c (g_path_skip_root): Fix bugs in code I just added ;-)
This commit is contained in:
committed by
Tor Lillqvist
parent
ebf8fe6a92
commit
71e0f93747
@@ -1,5 +1,7 @@
|
|||||||
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* testglib.c (main): Add test for g_path_skip_root().
|
||||||
|
|
||||||
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
||||||
forward slashes in the template.
|
forward slashes in the template.
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* testglib.c (main): Add test for g_path_skip_root().
|
||||||
|
|
||||||
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
||||||
forward slashes in the template.
|
forward slashes in the template.
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* testglib.c (main): Add test for g_path_skip_root().
|
||||||
|
|
||||||
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
||||||
forward slashes in the template.
|
forward slashes in the template.
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* testglib.c (main): Add test for g_path_skip_root().
|
||||||
|
|
||||||
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
||||||
forward slashes in the template.
|
forward slashes in the template.
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* testglib.c (main): Add test for g_path_skip_root().
|
||||||
|
|
||||||
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
||||||
forward slashes in the template.
|
forward slashes in the template.
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* testglib.c (main): Add test for g_path_skip_root().
|
||||||
|
|
||||||
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
||||||
forward slashes in the template.
|
forward slashes in the template.
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* testglib.c (main): Add test for g_path_skip_root().
|
||||||
|
|
||||||
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
||||||
forward slashes in the template.
|
forward slashes in the template.
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
2001-01-05 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* testglib.c (main): Add test for g_path_skip_root().
|
||||||
|
|
||||||
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
* gfileutils.c (g_file_open_tmp): (Win32:) Look also for (illegal)
|
||||||
forward slashes in the template.
|
forward slashes in the template.
|
||||||
|
|
||||||
|
@@ -472,12 +472,28 @@ g_path_skip_root (gchar *file_name)
|
|||||||
g_return_val_if_fail (file_name != NULL, NULL);
|
g_return_val_if_fail (file_name != NULL, NULL);
|
||||||
|
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
/* Skip \\server\share\ */
|
/* Skip \\server\share */
|
||||||
if (file_name[0] == G_DIR_SEPARATOR &&
|
if (file_name[0] == G_DIR_SEPARATOR &&
|
||||||
file_name[1] == G_DIR_SEPARATOR &&
|
file_name[1] == G_DIR_SEPARATOR &&
|
||||||
file_name[2] &&
|
file_name[2])
|
||||||
strchr (file_name + 2, G_DIR_SEPARATOR) > file_name + 2)
|
{
|
||||||
return strchr (file_name + 2, G_DIR_SEPARATOR) + 1;
|
gchar *p, *q;
|
||||||
|
|
||||||
|
if ((p = strchr (file_name + 2, G_DIR_SEPARATOR)) > file_name + 2 &&
|
||||||
|
p[1])
|
||||||
|
{
|
||||||
|
file_name = p + 1;
|
||||||
|
|
||||||
|
while (file_name[0] && file_name[0] != G_DIR_SEPARATOR)
|
||||||
|
file_name++;
|
||||||
|
|
||||||
|
/* Possibly skip a backslash after the share name */
|
||||||
|
if (file_name[0] == G_DIR_SEPARATOR)
|
||||||
|
file_name++;
|
||||||
|
|
||||||
|
return file_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Skip initial slashes */
|
/* Skip initial slashes */
|
||||||
|
24
gutils.c
24
gutils.c
@@ -472,12 +472,28 @@ g_path_skip_root (gchar *file_name)
|
|||||||
g_return_val_if_fail (file_name != NULL, NULL);
|
g_return_val_if_fail (file_name != NULL, NULL);
|
||||||
|
|
||||||
#ifdef G_OS_WIN32
|
#ifdef G_OS_WIN32
|
||||||
/* Skip \\server\share\ */
|
/* Skip \\server\share */
|
||||||
if (file_name[0] == G_DIR_SEPARATOR &&
|
if (file_name[0] == G_DIR_SEPARATOR &&
|
||||||
file_name[1] == G_DIR_SEPARATOR &&
|
file_name[1] == G_DIR_SEPARATOR &&
|
||||||
file_name[2] &&
|
file_name[2])
|
||||||
strchr (file_name + 2, G_DIR_SEPARATOR) > file_name + 2)
|
{
|
||||||
return strchr (file_name + 2, G_DIR_SEPARATOR) + 1;
|
gchar *p, *q;
|
||||||
|
|
||||||
|
if ((p = strchr (file_name + 2, G_DIR_SEPARATOR)) > file_name + 2 &&
|
||||||
|
p[1])
|
||||||
|
{
|
||||||
|
file_name = p + 1;
|
||||||
|
|
||||||
|
while (file_name[0] && file_name[0] != G_DIR_SEPARATOR)
|
||||||
|
file_name++;
|
||||||
|
|
||||||
|
/* Possibly skip a backslash after the share name */
|
||||||
|
if (file_name[0] == G_DIR_SEPARATOR)
|
||||||
|
file_name++;
|
||||||
|
|
||||||
|
return file_name;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Skip initial slashes */
|
/* Skip initial slashes */
|
||||||
|
57
testglib.c
57
testglib.c
@@ -333,28 +333,48 @@ main (int argc,
|
|||||||
{ "/", "/" },
|
{ "/", "/" },
|
||||||
{ "////", "/" },
|
{ "////", "/" },
|
||||||
{ ".////", "." },
|
{ ".////", "." },
|
||||||
{ ".", "." },
|
|
||||||
{ "..", "." },
|
|
||||||
{ "../", ".." },
|
{ "../", ".." },
|
||||||
{ "..////", ".." },
|
{ "..////", ".." },
|
||||||
{ "", "." },
|
|
||||||
{ "a/b", "a" },
|
{ "a/b", "a" },
|
||||||
{ "a/b/", "a/b" },
|
{ "a/b/", "a/b" },
|
||||||
{ "c///", "c" },
|
{ "c///", "c" },
|
||||||
#else
|
#else
|
||||||
{ "\\", "\\" },
|
{ "\\", "\\" },
|
||||||
{ ".\\\\\\\\", "." },
|
{ ".\\\\\\\\", "." },
|
||||||
{ ".", "." },
|
|
||||||
{ "..", "." },
|
|
||||||
{ "..\\", ".." },
|
{ "..\\", ".." },
|
||||||
{ "..\\\\\\\\", ".." },
|
{ "..\\\\\\\\", ".." },
|
||||||
{ "", "." },
|
|
||||||
{ "a\\b", "a" },
|
{ "a\\b", "a" },
|
||||||
{ "a\\b\\", "a\\b" },
|
{ "a\\b\\", "a\\b" },
|
||||||
{ "c\\\\\\", "c" },
|
{ "c\\\\\\", "c" },
|
||||||
#endif
|
#endif
|
||||||
|
{ ".", "." },
|
||||||
|
{ "..", "." },
|
||||||
|
{ "", "." },
|
||||||
};
|
};
|
||||||
guint n_dirname_checks = sizeof (dirname_checks) / sizeof (dirname_checks[0]);
|
guint n_dirname_checks = G_N_ELEMENTS (dirname_checks);
|
||||||
|
|
||||||
|
struct {
|
||||||
|
gchar *filename;
|
||||||
|
gchar *without_root;
|
||||||
|
} skip_root_checks[] = {
|
||||||
|
#ifndef G_OS_WIN32
|
||||||
|
{ "/", "" },
|
||||||
|
{ "//", "" },
|
||||||
|
{ "/foo", "foo" },
|
||||||
|
{ "//foo", "foo" },
|
||||||
|
{ "a/b", NULL },
|
||||||
|
#else
|
||||||
|
{ "\\", "" },
|
||||||
|
{ "\\foo", "foo" },
|
||||||
|
{ "\\\\server\\foo", "" },
|
||||||
|
{ "\\\\server\\foo\\bar", "bar" },
|
||||||
|
{ "a\\b", NULL },
|
||||||
|
#endif
|
||||||
|
{ ".", NULL },
|
||||||
|
{ "", NULL },
|
||||||
|
};
|
||||||
|
guint n_skip_root_checks = G_N_ELEMENTS (skip_root_checks);
|
||||||
|
|
||||||
guint16 gu16t1 = 0x44afU, gu16t2 = 0xaf44U;
|
guint16 gu16t1 = 0x44afU, gu16t2 = 0xaf44U;
|
||||||
guint32 gu32t1 = 0x02a7f109U, gu32t2 = 0x09f1a702U;
|
guint32 gu32t1 = 0x02a7f109U, gu32t2 = 0x09f1a702U;
|
||||||
#ifdef G_HAVE_GINT64
|
#ifdef G_HAVE_GINT64
|
||||||
@@ -367,6 +387,7 @@ main (int argc,
|
|||||||
char template[10];
|
char template[10];
|
||||||
GError *error;
|
GError *error;
|
||||||
char *name_used;
|
char *name_used;
|
||||||
|
gchar *p;
|
||||||
|
|
||||||
g_print ("TestGLib v%u.%u.%u (i:%u b:%u)\n",
|
g_print ("TestGLib v%u.%u.%u (i:%u b:%u)\n",
|
||||||
glib_major_version,
|
glib_major_version,
|
||||||
@@ -416,6 +437,28 @@ main (int argc,
|
|||||||
if (n_dirname_checks)
|
if (n_dirname_checks)
|
||||||
g_print ("ok\n");
|
g_print ("ok\n");
|
||||||
|
|
||||||
|
g_print ("checking g_path_skip_root()...");
|
||||||
|
for (i = 0; i < n_skip_root_checks; i++)
|
||||||
|
{
|
||||||
|
gchar *skipped;
|
||||||
|
|
||||||
|
skipped = g_path_skip_root (skip_root_checks[i].filename);
|
||||||
|
if ((skipped && !skip_root_checks[i].without_root) ||
|
||||||
|
(!skipped && skip_root_checks[i].without_root) ||
|
||||||
|
((skipped && skip_root_checks[i].without_root) &&
|
||||||
|
strcmp (skipped, skip_root_checks[i].without_root)))
|
||||||
|
{
|
||||||
|
g_print ("\nfailed for \"%s\"==\"%s\" (returned: \"%s\")\n",
|
||||||
|
skip_root_checks[i].filename,
|
||||||
|
(skip_root_checks[i].without_root ?
|
||||||
|
skip_root_checks[i].without_root : "<NULL>"),
|
||||||
|
(skipped ? skipped : "<NULL>"));
|
||||||
|
n_skip_root_checks = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (n_skip_root_checks)
|
||||||
|
g_print ("ok\n");
|
||||||
|
|
||||||
g_print ("checking doubly linked lists...");
|
g_print ("checking doubly linked lists...");
|
||||||
|
|
||||||
list = NULL;
|
list = NULL;
|
||||||
|
@@ -333,28 +333,48 @@ main (int argc,
|
|||||||
{ "/", "/" },
|
{ "/", "/" },
|
||||||
{ "////", "/" },
|
{ "////", "/" },
|
||||||
{ ".////", "." },
|
{ ".////", "." },
|
||||||
{ ".", "." },
|
|
||||||
{ "..", "." },
|
|
||||||
{ "../", ".." },
|
{ "../", ".." },
|
||||||
{ "..////", ".." },
|
{ "..////", ".." },
|
||||||
{ "", "." },
|
|
||||||
{ "a/b", "a" },
|
{ "a/b", "a" },
|
||||||
{ "a/b/", "a/b" },
|
{ "a/b/", "a/b" },
|
||||||
{ "c///", "c" },
|
{ "c///", "c" },
|
||||||
#else
|
#else
|
||||||
{ "\\", "\\" },
|
{ "\\", "\\" },
|
||||||
{ ".\\\\\\\\", "." },
|
{ ".\\\\\\\\", "." },
|
||||||
{ ".", "." },
|
|
||||||
{ "..", "." },
|
|
||||||
{ "..\\", ".." },
|
{ "..\\", ".." },
|
||||||
{ "..\\\\\\\\", ".." },
|
{ "..\\\\\\\\", ".." },
|
||||||
{ "", "." },
|
|
||||||
{ "a\\b", "a" },
|
{ "a\\b", "a" },
|
||||||
{ "a\\b\\", "a\\b" },
|
{ "a\\b\\", "a\\b" },
|
||||||
{ "c\\\\\\", "c" },
|
{ "c\\\\\\", "c" },
|
||||||
#endif
|
#endif
|
||||||
|
{ ".", "." },
|
||||||
|
{ "..", "." },
|
||||||
|
{ "", "." },
|
||||||
};
|
};
|
||||||
guint n_dirname_checks = sizeof (dirname_checks) / sizeof (dirname_checks[0]);
|
guint n_dirname_checks = G_N_ELEMENTS (dirname_checks);
|
||||||
|
|
||||||
|
struct {
|
||||||
|
gchar *filename;
|
||||||
|
gchar *without_root;
|
||||||
|
} skip_root_checks[] = {
|
||||||
|
#ifndef G_OS_WIN32
|
||||||
|
{ "/", "" },
|
||||||
|
{ "//", "" },
|
||||||
|
{ "/foo", "foo" },
|
||||||
|
{ "//foo", "foo" },
|
||||||
|
{ "a/b", NULL },
|
||||||
|
#else
|
||||||
|
{ "\\", "" },
|
||||||
|
{ "\\foo", "foo" },
|
||||||
|
{ "\\\\server\\foo", "" },
|
||||||
|
{ "\\\\server\\foo\\bar", "bar" },
|
||||||
|
{ "a\\b", NULL },
|
||||||
|
#endif
|
||||||
|
{ ".", NULL },
|
||||||
|
{ "", NULL },
|
||||||
|
};
|
||||||
|
guint n_skip_root_checks = G_N_ELEMENTS (skip_root_checks);
|
||||||
|
|
||||||
guint16 gu16t1 = 0x44afU, gu16t2 = 0xaf44U;
|
guint16 gu16t1 = 0x44afU, gu16t2 = 0xaf44U;
|
||||||
guint32 gu32t1 = 0x02a7f109U, gu32t2 = 0x09f1a702U;
|
guint32 gu32t1 = 0x02a7f109U, gu32t2 = 0x09f1a702U;
|
||||||
#ifdef G_HAVE_GINT64
|
#ifdef G_HAVE_GINT64
|
||||||
@@ -367,6 +387,7 @@ main (int argc,
|
|||||||
char template[10];
|
char template[10];
|
||||||
GError *error;
|
GError *error;
|
||||||
char *name_used;
|
char *name_used;
|
||||||
|
gchar *p;
|
||||||
|
|
||||||
g_print ("TestGLib v%u.%u.%u (i:%u b:%u)\n",
|
g_print ("TestGLib v%u.%u.%u (i:%u b:%u)\n",
|
||||||
glib_major_version,
|
glib_major_version,
|
||||||
@@ -416,6 +437,28 @@ main (int argc,
|
|||||||
if (n_dirname_checks)
|
if (n_dirname_checks)
|
||||||
g_print ("ok\n");
|
g_print ("ok\n");
|
||||||
|
|
||||||
|
g_print ("checking g_path_skip_root()...");
|
||||||
|
for (i = 0; i < n_skip_root_checks; i++)
|
||||||
|
{
|
||||||
|
gchar *skipped;
|
||||||
|
|
||||||
|
skipped = g_path_skip_root (skip_root_checks[i].filename);
|
||||||
|
if ((skipped && !skip_root_checks[i].without_root) ||
|
||||||
|
(!skipped && skip_root_checks[i].without_root) ||
|
||||||
|
((skipped && skip_root_checks[i].without_root) &&
|
||||||
|
strcmp (skipped, skip_root_checks[i].without_root)))
|
||||||
|
{
|
||||||
|
g_print ("\nfailed for \"%s\"==\"%s\" (returned: \"%s\")\n",
|
||||||
|
skip_root_checks[i].filename,
|
||||||
|
(skip_root_checks[i].without_root ?
|
||||||
|
skip_root_checks[i].without_root : "<NULL>"),
|
||||||
|
(skipped ? skipped : "<NULL>"));
|
||||||
|
n_skip_root_checks = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (n_skip_root_checks)
|
||||||
|
g_print ("ok\n");
|
||||||
|
|
||||||
g_print ("checking doubly linked lists...");
|
g_print ("checking doubly linked lists...");
|
||||||
|
|
||||||
list = NULL;
|
list = NULL;
|
||||||
|
Reference in New Issue
Block a user