Bruno Haible
2017-06-11 10:59:23 UTC
Hi,
When running the gnulib testsuite on GNU/kFreeBSD 9.0 (installed
from debian-7.11.0-kfreebsd-amd64-netinst.iso), I get two test failures:
FAIL: test-getlogin
===================
../../gltests/test-getlogin.c:60: assertion 'errno == ENOTTY || errno == EINVAL || errno == ENXIO' failed
FAIL test-getlogin (exit status: 134)
FAIL: test-getlogin_r
=====================
../../gltests/test-getlogin_r.c:95: assertion 'strcmp (pwd->pw_name, buf) == 0' failed
FAIL test-getlogin_r (exit status: 134)
The first one, at least, fails because the system call returns an empty buffer:
char *
getlogin (void)
{
if (__getlogin_cache == NULL)
{
if (INLINE_SYSCALL (getlogin, 2, __getlogin_cache_room, MAXLOGNAME) < 0)
return NULL;
/* The system call should return a NULL terminated name. */
if (__memchr (__getlogin_cache_room, '\0', MAXLOGNAME) == NULL)
abort ();
__getlogin_cache = __getlogin_cache_room; // <==== HERE __getlogin_cache_room is filled with NULs
}
return (__getlogin_cache[0] ? __getlogin_cache : NULL);
}
If you want to reproduce it, take this tarball:
https://haible.de/bruno/gnu/testdir-getlogin.tar.gz
and run "./configure CFLAGS=-ggdb; make; make check".
The good news is that these are the *only* test failures; more than 1000
other tests pass flawlessly. :)
Bruno
When running the gnulib testsuite on GNU/kFreeBSD 9.0 (installed
from debian-7.11.0-kfreebsd-amd64-netinst.iso), I get two test failures:
FAIL: test-getlogin
===================
../../gltests/test-getlogin.c:60: assertion 'errno == ENOTTY || errno == EINVAL || errno == ENXIO' failed
FAIL test-getlogin (exit status: 134)
FAIL: test-getlogin_r
=====================
../../gltests/test-getlogin_r.c:95: assertion 'strcmp (pwd->pw_name, buf) == 0' failed
FAIL test-getlogin_r (exit status: 134)
The first one, at least, fails because the system call returns an empty buffer:
char *
getlogin (void)
{
if (__getlogin_cache == NULL)
{
if (INLINE_SYSCALL (getlogin, 2, __getlogin_cache_room, MAXLOGNAME) < 0)
return NULL;
/* The system call should return a NULL terminated name. */
if (__memchr (__getlogin_cache_room, '\0', MAXLOGNAME) == NULL)
abort ();
__getlogin_cache = __getlogin_cache_room; // <==== HERE __getlogin_cache_room is filled with NULs
}
return (__getlogin_cache[0] ? __getlogin_cache : NULL);
}
If you want to reproduce it, take this tarball:
https://haible.de/bruno/gnu/testdir-getlogin.tar.gz
and run "./configure CFLAGS=-ggdb; make; make check".
The good news is that these are the *only* test failures; more than 1000
other tests pass flawlessly. :)
Bruno