Mercurial > gnulib
changeset 32853:5fc8e4fa52d6
ptsname: Improve test.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 05 Apr 2010 13:15:11 +0200 |
parents | 53101d71cf87 |
children | 412319d17f0c |
files | ChangeLog tests/test-ptsname.c |
diffstat | 2 files changed, 38 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Apr 05 13:12:59 2010 +0200 +++ b/ChangeLog Mon Apr 05 13:15:11 2010 +0200 @@ -1,3 +1,9 @@ +2010-04-05 Bruno Haible <bruno@clisp.org> + + ptsname: Improve test. + * tests/test-ptsname.c (main): Also try the various master names of BSD + systems. + 2010-04-05 Bruno Haible <bruno@clisp.org> memchr: Avoid a possible C++ test error.
--- a/tests/test-ptsname.c Mon Apr 05 13:12:59 2010 +0200 +++ b/tests/test-ptsname.c Mon Apr 05 13:15:11 2010 +0200 @@ -54,13 +54,13 @@ close (fd); } - /* Try various master names of MacOS X. */ + /* Try various master names of MacOS X: /dev/pty[p-w][0-9a-f] */ { int char1; int char2; for (char1 = 'p'; char1 <= 'w'; char1++) - for (char2 = '0'; char2 <= 'f'; char2 = (char2 == '9' ? 'a' : char2 + 1)) + for (char2 = '0'; char2 <= 'f'; (char2 == '9' ? char2 = 'a' : char2++)) { char master_name[32]; int fd; @@ -82,5 +82,35 @@ } } + /* Try various master names of *BSD: /dev/pty[p-sP-S][0-9a-v] */ + { + int upper; + int char1; + int char2; + + for (upper = 0; upper <= 1; upper++) + for (char1 = (upper ? 'P' : 'p'); char1 <= (upper ? 'S' : 's'); 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 (strcmp (result, slave_name) == 0); + + close (fd); + } + } + } + return 0; }