summaryrefslogtreecommitdiff
path: root/tests/test-ptsname.c
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2022-09-02 22:47:49 +0200
committerBruno Haible <bruno@clisp.org>2022-09-02 22:47:49 +0200
commitb1b1dfc659b28b4341835356f3855e1354fdb588 (patch)
tree2910e89ac7c1151a90e55b744e7074079c7dbe50 /tests/test-ptsname.c
parent9c886db83e33c4c5d2c3eb6b43a045c1b77704e3 (diff)
downloadgnulib-b1b1dfc659b28b4341835356f3855e1354fdb588.tar.gz
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.
Diffstat (limited to 'tests/test-ptsname.c')
-rw-r--r--tests/test-ptsname.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/test-ptsname.c b/tests/test-ptsname.c
index 33d561b877..b300a03a26 100644
--- a/tests/test-ptsname.c
+++ b/tests/test-ptsname.c
@@ -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] */