From: Bruno Haible Date: Fri, 2 Sep 2022 20:47:49 +0000 (+0200) Subject: ptsname tests, ptsname_r tests: Fix test failures on Hurd. X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=51ffd17f492047b1edb090afdea6da8f9b23316d;p=gnulib.git 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. --- diff --git a/ChangeLog b/ChangeLog index 685cd013bc..a5b89f59c3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2022-09-02 Bruno Haible + + 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 strtol, strtoul: Fix compilation error in C++ mode on Solaris 11. 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] */ diff --git a/tests/test-ptsname_r.c b/tests/test-ptsname_r.c index 4d299234f9..4987d17680 100644 --- a/tests/test-ptsname_r.c +++ b/tests/test-ptsname_r.c @@ -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] */