summaryrefslogtreecommitdiff
path: root/glib/tests/fileutils.c
diff options
context:
space:
mode:
authorEmmanuel Fleury <emmanuel.fleury@gmail.com>2021-12-16 01:16:41 +0100
committerPhilip Withnall <pwithnall@endlessos.org>2021-12-16 10:41:13 +0000
commit9f760a7cc1ff787ba79ba0dd80bae12b70f12e9b (patch)
tree2086fc8d80edf36299e7346e63164e6de6eeb7b3 /glib/tests/fileutils.c
parentdce8d110d6c0163485eded34e4717e9db9b8aa96 (diff)
downloadglib-9f760a7cc1ff787ba79ba0dd80bae12b70f12e9b.tar.gz
Moving tests/dirname-test.c to glib/tests/fileutils.c
Helps issue #1434
Diffstat (limited to 'glib/tests/fileutils.c')
-rw-r--r--glib/tests/fileutils.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/glib/tests/fileutils.c b/glib/tests/fileutils.c
index a3c1c33d0..f11a855b9 100644
--- a/glib/tests/fileutils.c
+++ b/glib/tests/fileutils.c
@@ -835,6 +835,67 @@ test_basename (void)
}
static void
+test_dirname (void)
+{
+ gsize i;
+ struct {
+ const gchar *filename;
+ const gchar *dirname;
+ } dirname_checks[] = {
+ { "/", "/" },
+ { "////", "/" },
+ { ".////", "." },
+ { ".", "." },
+ { "..", "." },
+ { "../", ".." },
+ { "..////", ".." },
+ { "", "." },
+ { "a/b", "a" },
+ { "a/b/", "a/b" },
+ { "c///", "c" },
+ { "/a/b", "/a" },
+ { "/a/b/", "/a/b" },
+#ifdef G_OS_WIN32
+ { "\\", "\\" },
+ { ".\\\\\\\\", "." },
+ { ".\\/\\/", "." },
+ { ".", "." },
+ { "..", "." },
+ { "..\\", ".." },
+ { "..\\\\\\\\", ".." },
+ { "..\\//\\", ".." },
+ { "", "." },
+ { "a\\b", "a" },
+ { "a\\b\\", "a\\b" },
+ { "\\a\\b", "\\a" },
+ { "\\a\\b\\", "\\a\\b" },
+ { "c\\\\\\", "c" },
+ { "c/\\\\", "c" },
+ { "a:", "a:." },
+ { "a:foo", "a:." },
+ { "a:foo\\bar", "a:foo" },
+ { "a:/foo", "a:/" },
+ { "a:/foo/bar", "a:/foo" },
+ { "a:/", "a:/" },
+ { "a://", "a:/" },
+ { "a:\\foo", "a:\\" },
+ { "a:\\", "a:\\" },
+ { "a:\\\\", "a:\\" },
+ { "a:\\/", "a:\\" },
+#endif
+ };
+
+ for (i = 0; i < G_N_ELEMENTS (dirname_checks); i++)
+ {
+ gchar *dirname;
+
+ dirname = g_path_get_dirname (dirname_checks[i].filename);
+ g_assert_cmpstr (dirname, ==, dirname_checks[i].dirname);
+ g_free (dirname);
+ }
+}
+
+static void
test_dir_make_tmp (void)
{
gchar *name;
@@ -1839,6 +1900,7 @@ main (int argc,
g_test_add_func ("/fileutils/format-size-for-display", test_format_size_for_display);
g_test_add_func ("/fileutils/errors", test_file_errors);
g_test_add_func ("/fileutils/basename", test_basename);
+ g_test_add_func ("/fileutils/dirname", test_dirname);
g_test_add_func ("/fileutils/dir-make-tmp", test_dir_make_tmp);
g_test_add_func ("/fileutils/file-open-tmp", test_file_open_tmp);
g_test_add_func ("/fileutils/mkstemp", test_mkstemp);