]> Savannah Git Hosting - gnulib.git/commitdiff
ptsname tests, ptsname_r tests: Fix test failures on Hurd.
authorBruno Haible <bruno@clisp.org>
Fri, 2 Sep 2022 20:47:49 +0000 (22:47 +0200)
committerBruno Haible <bruno@clisp.org>
Fri, 2 Sep 2022 23:03:11 +0000 (01:03 +0200)
* tests/test-ptsname.c (main): On Hurd, test only the BSD ptys that
actually exist on Hurd.
* tests/test-ptsname_r.c (main): Likewise.

ChangeLog
tests/test-ptsname.c
tests/test-ptsname_r.c

index 27fce28d8dcc1182562f045b8c8395321a8ae31f..5c0b13d40d8c42025af6c4cc9fb7036b44d6d34c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2022-09-02  Bruno Haible  <bruno@clisp.org>
+
+       ptsname tests, ptsname_r tests: Fix test failures on Hurd.
+       * tests/test-ptsname.c (main): On Hurd, test only the BSD ptys that
+       actually exist on Hurd.
+       * tests/test-ptsname_r.c (main): Likewise.
+
 2022-09-02  Bruno Haible  <bruno@clisp.org>
 
        strtol, strtoul: Fix compilation error in C++ mode on Solaris 11.
index a701885c6f15281cf036881216f84aebec766f5f..fa76b1295923d7ea5246358c402e84e1f25467ca 100644 (file)
@@ -155,6 +155,36 @@ main (void)
     close (fd);
   }
 
+#elif defined __GNU__ /* Hurd */
+
+  /* Try various master names of Hurd: /dev/pty[p-q][0-9a-v]  */
+  {
+    int char1;
+    int char2;
+
+    for (char1 = 'p'; char1 <= 'q'; char1++)
+      for (char2 = '0'; char2 <= 'v'; (char2 == '9' ? char2 = 'a' : char2++))
+        {
+          char master_name[32];
+          int fd;
+
+          sprintf (master_name, "/dev/pty%c%c", char1, char2);
+          fd = open (master_name, O_RDONLY);
+          if (fd >= 0)
+            {
+              char *result;
+              char slave_name[32];
+
+              result = ptsname (fd);
+              ASSERT (result != NULL);
+              sprintf (slave_name, "/dev/tty%c%c", char1, char2);
+              ASSERT (same_slave (result, slave_name));
+
+              close (fd);
+            }
+        }
+  }
+
 #else
 
   /* Try various master names of Mac OS X: /dev/pty[p-w][0-9a-f]  */
index 3a494e859d84280e150ccf9d6a47273f200b82af..7b5b902ffd1999bca3cc942d4370e6d5f6804e4f 100644 (file)
@@ -210,6 +210,39 @@ main (void)
     close (fd);
   }
 
+#elif defined __GNU__ /* Hurd */
+
+  /* Try various master names of Hurd: /dev/pty[p-q][0-9a-v]  */
+  {
+    int char1;
+    int char2;
+
+    for (char1 = 'p'; char1 <= 'q'; char1++)
+      for (char2 = '0'; char2 <= 'v'; (char2 == '9' ? char2 = 'a' : char2++))
+        {
+          char master_name[32];
+          int fd;
+
+          sprintf (master_name, "/dev/pty%c%c", char1, char2);
+          fd = open (master_name, O_RDONLY);
+          if (fd >= 0)
+            {
+              char buffer[256];
+              int result;
+              char slave_name[32];
+
+              result = ptsname_r (fd, buffer, sizeof buffer);
+              ASSERT (result == 0);
+              sprintf (slave_name, "/dev/tty%c%c", char1, char2);
+              ASSERT (same_slave (buffer, slave_name));
+
+              test_errors (fd, buffer);
+
+              close (fd);
+            }
+        }
+  }
+
 #else
 
   /* Try various master names of Mac OS X: /dev/pty[p-w][0-9a-f]  */