bootstrap: fix handling of various perl --version formats
[gnulib.git] / tests / test-canonicalize.c
index f8dcc54..eeae9e0 100644 (file)
 
 #include "same-inode.h"
 
-#if !HAVE_SYMLINK
-# define symlink(a,b) (-1)
-#endif
-
 #define ASSERT(expr) \
   do                                                                        \
     {                                                                       \
@@ -49,7 +45,7 @@
 #define BASE "t-can.tmp"
 
 int
-main ()
+main (void)
 {
   /* Setup some hierarchy to be used by this test.  Start by removing
      any leftovers from a previous partial run.  */
@@ -125,7 +121,7 @@ main ()
     {
       ASSERT (remove (BASE "/tra") == 0);
       ASSERT (rmdir (BASE) == 0);
-      fputs ("skipping test: symlinks not supported on this filesystem\n",
+      fputs ("skipping test: symlinks not supported on this file system\n",
             stderr);
       return 77;
     }
@@ -240,26 +236,42 @@ main ()
   {
     char *result1 = canonicalize_filename_mode (BASE "/zzz", CAN_ALL_BUT_LAST);
     char *result2 = canonicalize_filename_mode (BASE "/zzz", CAN_MISSING);
+    char *result3 = canonicalize_filename_mode (BASE "/zzz/", CAN_ALL_BUT_LAST);
+    char *result4 = canonicalize_filename_mode (BASE "/zzz/", CAN_MISSING);
     ASSERT (result1 != NULL);
     ASSERT (result2 != NULL);
+    ASSERT (result3 != NULL);
+    ASSERT (result4 != NULL);
     ASSERT (strcmp (result1, result2) == 0);
+    ASSERT (strcmp (result2, result3) == 0);
+    ASSERT (strcmp (result3, result4) == 0);
     ASSERT (strcmp (result1 + strlen (result1) - strlen ("/" BASE "/zzz"),
                     "/" BASE "/zzz") == 0);
     free (result1);
     free (result2);
+    free (result3);
+    free (result4);
   }
 
   /* Check that alternate modes can resolve broken symlink basenames.  */
   {
     char *result1 = canonicalize_filename_mode (BASE "/ouk", CAN_ALL_BUT_LAST);
     char *result2 = canonicalize_filename_mode (BASE "/ouk", CAN_MISSING);
+    char *result3 = canonicalize_filename_mode (BASE "/ouk/", CAN_ALL_BUT_LAST);
+    char *result4 = canonicalize_filename_mode (BASE "/ouk/", CAN_MISSING);
     ASSERT (result1 != NULL);
     ASSERT (result2 != NULL);
+    ASSERT (result3 != NULL);
+    ASSERT (result4 != NULL);
     ASSERT (strcmp (result1, result2) == 0);
+    ASSERT (strcmp (result2, result3) == 0);
+    ASSERT (strcmp (result3, result4) == 0);
     ASSERT (strcmp (result1 + strlen (result1) - strlen ("/" BASE "/wum"),
                     "/" BASE "/wum") == 0);
     free (result1);
     free (result2);
+    free (result3);
+    free (result4);
   }
 
   /* Check that alternate modes can handle missing dirnames.  */