changeset 14091:1f4b3a05962f

getlogin_r: Avoid test failure on HP-UX 11. * tests/test-getlogin_r.c (main): Allow an error code EINVAL instead of ERANGE when the second argument is zero. * doc/posix-functions/getlogin_r.texi: Document the HP-UX 11 portability problem.
author Bruno Haible <bruno@clisp.org>
date Mon, 03 Jan 2011 02:51:03 +0100
parents 32d4fa9823da
children 53c8f6f49c64
files ChangeLog doc/posix-functions/getlogin_r.texi tests/test-getlogin_r.c
diffstat 3 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-01-02  Bruno Haible  <bruno@clisp.org>
+
+	getlogin_r: Avoid test failure on HP-UX 11.
+	* tests/test-getlogin_r.c (main): Allow an error code EINVAL instead of
+	ERANGE when the second argument is zero.
+	* doc/posix-functions/getlogin_r.texi: Document the HP-UX 11
+	portability problem.
+
 2011-01-02  Bruce Korb  <bkorb@gnu.org>
 
 	* build-aux/update-copyright: doc Simon's changes
--- a/doc/posix-functions/getlogin_r.texi
+++ b/doc/posix-functions/getlogin_r.texi
@@ -29,4 +29,8 @@
 @item
 This function fails even when standard input is a tty on some platforms:
 HP-UX 11.11.
+@item
+This function fails with error code @code{EINVAL} instead of @code{ERANGE} when
+the second argument is zero on some platforms:
+HP-UX 11.31.
 @end itemize
--- a/tests/test-getlogin_r.c
+++ b/tests/test-getlogin_r.c
@@ -78,7 +78,13 @@
     size_t i;
 
     for (i = 0; i <= n; i++)
-      ASSERT (getlogin_r (smallbuf, i) == ERANGE);
+      {
+        err = getlogin_r (smallbuf, i);
+        if (i == 0)
+          ASSERT (err == ERANGE || err == EINVAL);
+        else
+          ASSERT (err == ERANGE);
+      }
   }
 
   /* Test with a huge buffer.  */