From ec68a6fee63ee22364cb88f215b906989ab6b33c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 16 Oct 2013 07:47:53 -0700 Subject: [PATCH] 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. --- ChangeLog | 13 +++++++++++++ doc/posix-functions/mkfifo.texi | 4 ++++ doc/posix-functions/mkfifoat.texi | 7 +++++-- doc/posix-functions/mknod.texi | 4 ++++ doc/posix-functions/mknodat.texi | 4 ++++ tests/test-mkfifo.h | 5 ++++- 6 files changed, 34 insertions(+), 3 deletions(-) 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); -- 2.11.0