X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-canonicalize.c;h=d76c3073652c9fc1fa09dfd6c5a411b5fab37494;hb=35600a9a833bc287a025214c9601574e4a8115d7;hp=800374332021e4185eb79ccafcc90f1466dc77f4;hpb=b432ad197bb6b96fecde723e9eac6f78f148fd31;p=gnulib.git diff --git a/tests/test-canonicalize.c b/tests/test-canonicalize.c index 800374332..d76c30736 100644 --- a/tests/test-canonicalize.c +++ b/tests/test-canonicalize.c @@ -1,10 +1,10 @@ /* Test of execution of file name canonicalization. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007-2008 Free Software Foundation, Inc. - This program is free software; you can redistribute it and/or modify + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ @@ -31,6 +30,7 @@ if (!(expr)) \ { \ fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ + fflush (stderr); \ abort (); \ } \ } \ @@ -127,5 +127,17 @@ main () free (result2); } + /* Ensure that the following is resolved properly. + Before 2007-09-27, it would mistakenly report a loop. */ + { + char *result1 = canonicalize_filename_mode ("t-can.tmp", CAN_EXISTING); + char *result2 = canonicalize_filename_mode ("t-can.tmp/p/1", CAN_EXISTING); + ASSERT (result1 != NULL); + ASSERT (result2 != NULL); + ASSERT (strcmp (result2 + strlen (result1), "/d/2") == 0); + free (result1); + free (result2); + } + return 0; }