Skip test when a hard link cannot be created.
[gnulib.git] / tests / test-link.c
index 255a939..a358921 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <unistd.h>
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 
 int
 main (int argc, char **argv)
 {
+  int ret;
+
   ASSERT (argc == 3);
-  ASSERT (link (argv[1], argv[2]) == 0);
+
+  ret = link (argv[1], argv[2]);
+  if (ret < 0)
+    {
+      /* If the device does not support hard links, errno is
+        EPERM on Linux, EOPNOTSUPP on FreeBSD.  */
+      if (errno == EPERM || errno == EOPNOTSUPP)
+       return 77;
+      perror ("link");
+      return 1;
+    }
 
   return 0;
 }