mkfifo-tests, etc.: allow HP-UX 11.11 bug
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 16 Oct 2013 14:47:53 +0000 (07:47 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 16 Oct 2013 14:48:18 +0000 (07:48 -0700)
Problem reported by Daniel Richard G. in
<http://lists.gnu.org/archive/html/bug-gnulib/2013-10/msg00068.html>.
* doc/posix-functions/mkfifo.texi (mkfifo):
* doc/posix-functions/mkfifoat.texi (mkfifoat):
* doc/posix-functions/mknod.texi (mknod):
* doc/posix-functions/mknodat.texi (mknodat):
Document the HP-UX 11.11 bug.
* tests/test-mkfifo.h (test_mkfifo):
Allow the HP-UX 11.11 bug.

ChangeLog
doc/posix-functions/mkfifo.texi
doc/posix-functions/mkfifoat.texi
doc/posix-functions/mknod.texi
doc/posix-functions/mknodat.texi
tests/test-mkfifo.h

index c70f1fe..2916f97 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2013-10-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       mkfifo-tests, etc.: allow HP-UX 11.11 bug
+       Problem reported by Daniel Richard G. in
+       <http://lists.gnu.org/archive/html/bug-gnulib/2013-10/msg00068.html>.
+       * doc/posix-functions/mkfifo.texi (mkfifo):
+       * doc/posix-functions/mkfifoat.texi (mkfifoat):
+       * doc/posix-functions/mknod.texi (mknod):
+       * doc/posix-functions/mknodat.texi (mknodat):
+       Document the HP-UX 11.11 bug.
+       * tests/test-mkfifo.h (test_mkfifo):
+       Allow the HP-UX 11.11 bug.
+
 2013-10-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        acl: allow cross-compilation to Gentoo
 2013-10-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        acl: allow cross-compilation to Gentoo
index 53a17bc..6fc49f7 100644 (file)
@@ -19,4 +19,8 @@ mingw, MSVC 9.
 
 Portability problems not fixed by Gnulib:
 @itemize
 
 Portability problems not fixed by Gnulib:
 @itemize
+@item
+If the argument exists and is a directory, this function fails with
+@code{EISDIR} instead of the correct @code{EEXIST}:
+HP-UX 11.11.
 @end itemize
 @end itemize
index fbe6c04..6476175 100644 (file)
@@ -20,6 +20,9 @@ Portability problems not fixed by Gnulib:
 @itemize
 @item
 The gnulib replacement function always fails with @samp{ENOSYS} on
 @itemize
 @item
 The gnulib replacement function always fails with @samp{ENOSYS} on
-some platforms:
-mingw, MSVC 9.
+some platforms: mingw, MSVC 9.
+@item
+If the argument exists and is a directory, the gnulib replacement
+function fails with @code{EISDIR} instead of the correct
+@code{EEXIST}: HP-UX 11.11.
 @end itemize
 @end itemize
index e7dd13c..6618694 100644 (file)
@@ -26,4 +26,8 @@ Portability problems not fixed by Gnulib:
 Use of this function for anything except fifos is not portable,
 generally requiring super-user privileges and knowledge of supported
 device numbers.
 Use of this function for anything except fifos is not portable,
 generally requiring super-user privileges and knowledge of supported
 device numbers.
+@item
+If the argument exists and is a directory, this function fails with
+@code{EISDIR} instead of the correct @code{EEXIST}:
+HP-UX 11.11.
 @end itemize
 @end itemize
index 8db9313..10175d0 100644 (file)
@@ -22,4 +22,8 @@ Portability problems not fixed by Gnulib:
 The gnulib replacement function always fails with @samp{ENOSYS} on
 some platforms:
 mingw, MSVC 9.
 The gnulib replacement function always fails with @samp{ENOSYS} on
 some platforms:
 mingw, MSVC 9.
+@item
+If the argument exists and is a directory, the gnulib replacement
+function fails with @code{EISDIR} instead of the correct
+@code{EEXIST}: HP-UX 11.11.
 @end itemize
 @end itemize
index 5adbf08..834d39f 100644 (file)
@@ -43,7 +43,10 @@ test_mkfifo (int (*func) (char const *, mode_t), bool print)
   ASSERT (errno == ENOENT);
   errno = 0;
   ASSERT (func (".", 0600) == -1);
   ASSERT (errno == ENOENT);
   errno = 0;
   ASSERT (func (".", 0600) == -1);
-  ASSERT (errno == EEXIST || errno == EINVAL);
+  /* Allow HP-UX 11.11's EISDIR, even though POSIX says it's wrong,
+     since it doesn't really hurt anything and we lack the energy to
+     fix it.  */
+  ASSERT (errno == EEXIST || errno == EINVAL || errno == EISDIR);
   errno = 0;
   ASSERT (func (BASE "fifo", 0600) == -1);
   ASSERT (errno == EEXIST);
   errno = 0;
   ASSERT (func (BASE "fifo", 0600) == -1);
   ASSERT (errno == EEXIST);