diff options
author | Emmanuel Fleury <emmanuel.fleury@gmail.com> | 2021-12-16 01:16:41 +0100 |
---|---|---|
committer | Philip Withnall <pwithnall@endlessos.org> | 2021-12-16 10:41:13 +0000 |
commit | 9f760a7cc1ff787ba79ba0dd80bae12b70f12e9b (patch) | |
tree | 2086fc8d80edf36299e7346e63164e6de6eeb7b3 /glib/tests/fileutils.c | |
parent | dce8d110d6c0163485eded34e4717e9db9b8aa96 (diff) | |
download | glib-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.c | 62 |
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); |