changeset 16072:511350e22a48

ptsname_r tests: Fix bugs. * tests/test-ptsname_r.c (test_errors): Change return type to 'void'. Fix ptsname_r calls. Reduce loop rounds to a reasonable amount.
author Bruno Haible <bruno@clisp.org>
date Thu, 10 Nov 2011 02:41:17 +0100
parents 1bf33e67ddd8
children e5c3172699de
files ChangeLog tests/test-ptsname_r.c
diffstat 2 files changed, 15 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-11-09  Bruno Haible  <bruno@clisp.org>
+
+	ptsname_r tests: Fix bugs.
+	* tests/test-ptsname_r.c (test_errors): Change return type to 'void'.
+	Fix ptsname_r calls. Reduce loop rounds to a reasonable amount.
+
 2011-11-09  Paul Eggert  <eggert@cs.ucla.edu>
 
 	fstatat: work with cross-compilation
--- a/tests/test-ptsname_r.c
+++ b/tests/test-ptsname_r.c
@@ -53,20 +53,24 @@
               && SAME_INODE (statbuf1, statbuf2)));
 }
 
-static int
+static void
 test_errors (int fd, const char *slave)
 {
   char buffer[256];
   size_t len;
+  size_t buflen_max;
+  size_t buflen;
   int result;
-  size_t buflen;
 
   len = strlen (slave);
-  for (buflen = 0; buflen <= sizeof buffer; buflen++)
+  buflen_max = len + 5;
+  if (buflen_max > sizeof buffer)
+    buflen_max = sizeof buffer;
+  for (buflen = 0; buflen <= buflen_max; buflen++)
     {
+      memset (buffer, 'X', sizeof buffer);
       errno = 0;
-      memset (buffer, 'X', sizeof buffer);
-      result = ptsname_r (fd, buffer, len);
+      result = ptsname_r (fd, buffer, buflen);
       if (buflen > len)
         {
           ASSERT (result == 0);