Eric Blake wrote: > +static int > +test_errors (int fd, char *slave) The parameter should be a 'const char *slave'.
> +{ > + char buffer[256]; > + size_t len; > + int result; > + > + errno = 0; > + len = strlen (buffer); This should be: len = strlen (slave), right? buffer is uninitialized at this point. > + memset (buffer, 0, sizeof buffer); > + result = ptsname_r (fd, buffer, len); > + ASSERT (result != 0); > + ASSERT (result == errno); > + ASSERT (errno == ERANGE); > + ASSERT (buffer[0] == '\0'); I would find it good to test other values of the buflen parameter, since the experience shows that platforms have bugs in this area. Like this: size_t buflen; for (buflen = 0; buflen <= sizeof (buffer); buflen++) { memset (buffer, 'X', sizeof buffer); result = ptsname_r (fd, buffer, len); if (buflen > len) { ASSERT (result == 0); ASSERT (buffer[0] == '/'); } else { ASSERT (result != 0); ASSERT (result == errno); ASSERT (errno == ERANGE); ASSERT (buffer[0] == 'X'); } } > + errno = 0; > + result = ptsname_r (-1, buffer, sizeof buffer); > + ASSERT (result != 0); > + ASSERT (result == errno); > + ASSERT (errno == EBADF); > + ASSERT (buffer[0] == '\0'); This test does not use the fd and slave parameters and is already contained in main(). Why repeat it in test_errors()? Bruno -- In memoriam The inmates of the Daugavpils Ghetto <http://en.wikipedia.org/wiki/Daugavpils_Ghetto>