From: Paul Eggert Date: Wed, 16 Oct 2013 14:47:53 +0000 (-0700) Subject: mkfifo-tests, etc.: allow HP-UX 11.11 bug X-Git-Tag: v0.1~13 X-Git-Url: http://erislabs.net/gitweb/?p=gnulib.git;a=commitdiff_plain;h=ec68a6fee63ee22364cb88f215b906989ab6b33c mkfifo-tests, etc.: allow HP-UX 11.11 bug Problem reported by Daniel Richard G. in . * 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. --- diff --git a/ChangeLog b/ChangeLog index c70f1fed8..2916f974a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2013-10-16 Paul Eggert + + mkfifo-tests, etc.: allow HP-UX 11.11 bug + Problem reported by Daniel Richard G. in + . + * 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 acl: allow cross-compilation to Gentoo diff --git a/doc/posix-functions/mkfifo.texi b/doc/posix-functions/mkfifo.texi index 53a17bc04..6fc49f753 100644 --- a/doc/posix-functions/mkfifo.texi +++ b/doc/posix-functions/mkfifo.texi @@ -19,4 +19,8 @@ mingw, MSVC 9. 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 diff --git a/doc/posix-functions/mkfifoat.texi b/doc/posix-functions/mkfifoat.texi index fbe6c04d3..64761753c 100644 --- a/doc/posix-functions/mkfifoat.texi +++ b/doc/posix-functions/mkfifoat.texi @@ -20,6 +20,9 @@ Portability problems not fixed by Gnulib: @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 diff --git a/doc/posix-functions/mknod.texi b/doc/posix-functions/mknod.texi index e7dd13c9c..66186940d 100644 --- a/doc/posix-functions/mknod.texi +++ b/doc/posix-functions/mknod.texi @@ -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. +@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 diff --git a/doc/posix-functions/mknodat.texi b/doc/posix-functions/mknodat.texi index 8db93138f..10175d0ef 100644 --- a/doc/posix-functions/mknodat.texi +++ b/doc/posix-functions/mknodat.texi @@ -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. +@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 diff --git a/tests/test-mkfifo.h b/tests/test-mkfifo.h index 5adbf08f3..834d39f5c 100644 --- a/tests/test-mkfifo.h +++ b/tests/test-mkfifo.h @@ -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 == 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);