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 @@ -834,6 +834,67 @@ test_basename (void) g_free (b); } +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) { @@ -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); diff --git a/tests/dirname-test.c b/tests/dirname-test.c deleted file mode 100644 index 81c55d56d..000000000 --- a/tests/dirname-test.c +++ /dev/null @@ -1,117 +0,0 @@ -/* GLIB - Library of useful routines for C programming - * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, see . - */ - -/* - * Modified by the GLib Team and others 1997-2000. See the AUTHORS - * file for a list of people on the GLib Team. See the ChangeLog - * files for a list of changes. These files are distributed with - * GLib at ftp://ftp.gtk.org/pub/gtk/. - */ - -#undef G_DISABLE_ASSERT -#undef G_LOG_DOMAIN - -#include -#include -#include "glib.h" - -int array[10000]; -gboolean failed = FALSE; - -#define TEST(m,cond) G_STMT_START { failed = !(cond); \ -if (failed) \ - { if (!m) \ - g_print ("\n(%s:%d) failed for: %s\n", __FILE__, __LINE__, ( # cond )); \ - else \ - g_print ("\n(%s:%d) failed for: %s: (%s)\n", __FILE__, __LINE__, ( # cond ), (gchar*)m); \ - } \ -else \ - g_print ("."); fflush (stdout); \ -} G_STMT_END - -#define C2P(c) ((gpointer) ((long) (c))) -#define P2C(p) ((gchar) ((long) (p))) - -#define GLIB_TEST_STRING "el dorado " -#define GLIB_TEST_STRING_5 "el do" - -int -main (int argc, - char *argv[]) -{ - gsize i; - struct { - gchar *filename; - 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); - if (strcmp (dirname, dirname_checks[i].dirname) != 0) - g_error ("%s returned %s, should return %s", - dirname_checks[i].filename, dirname, - dirname_checks[i].dirname); - g_free (dirname); - } - - return 0; -} diff --git a/tests/meson.build b/tests/meson.build index 0f120edee..9bb97fd5e 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -18,7 +18,6 @@ subdir('refcount') tests = { 'testglib' : {'tap' : true}, 'testgdate' : {}, - 'dirname-test' : {}, 'file-test' : {}, 'env-test' : {}, 'gio-test' : {},