pty: Activate the signature wrapper of forkpty.
[gnulib.git] / tests / test-link.h
index 28bdcc1..d546d56 100644 (file)
@@ -1,5 +1,5 @@
 /* Test of link() function.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009-2013 Free Software Foundation, Inc.
 
    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
@@ -115,10 +115,10 @@ test_link (int (*func) (char const *, char const *), bool print)
   ASSERT (errno == ENOENT);
   errno = 0;
   ASSERT (func (BASE "a/", BASE "c") == -1);
-  ASSERT (errno == ENOTDIR);
+  ASSERT (errno == ENOTDIR || errno == EINVAL);
   errno = 0;
   ASSERT (func (BASE "a", BASE "c/") == -1);
-  ASSERT (errno == ENOTDIR || errno == ENOENT);
+  ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EINVAL);
 
   /* Most platforms reject hard links to directories, and even on
      those that do permit it, most users can't create them.  We assume
@@ -136,13 +136,15 @@ test_link (int (*func) (char const *, char const *), bool print)
     else
       {
         /* Most everyone else.  */
-        ASSERT (errno == EPERM || errno == EACCES);
+        ASSERT (errno == EPERM || errno == EACCES || errno == EISDIR);
         errno = 0;
         ASSERT (func (BASE "d/.", BASE "c") == -1);
-        ASSERT (errno == EPERM || errno == EACCES || errno == EINVAL);
+        ASSERT (errno == EPERM || errno == EACCES || errno == EISDIR
+                || errno == EINVAL);
         errno = 0;
         ASSERT (func (BASE "d/.//", BASE "c") == -1);
-        ASSERT (errno == EPERM || errno == EACCES || errno == EINVAL);
+        ASSERT (errno == EPERM || errno == EACCES || errno == EISDIR
+                || errno == EINVAL);
       }
   }
   ASSERT (unlink (BASE "a") == 0);
@@ -162,11 +164,15 @@ test_link (int (*func) (char const *, char const *), bool print)
     }
   errno = 0;
   ASSERT (func (BASE "b", BASE "link/") == -1);
-  ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EEXIST);
+  ASSERT (errno == ENOTDIR || errno == ENOENT || errno == EEXIST
+          || errno == EINVAL);
+  errno = 0;
+  ASSERT (func (BASE "b", BASE "link") == -1);
+  ASSERT (errno == EEXIST);
   ASSERT (rename (BASE "b", BASE "a") == 0);
   errno = 0;
   ASSERT (func (BASE "link/", BASE "b") == -1);
-  ASSERT (errno == ENOTDIR || errno == EEXIST);
+  ASSERT (errno == ENOTDIR || errno == EEXIST || errno == EINVAL);
 
   /* Clean up.  */
   ASSERT (unlink (BASE "a") == 0);