Andrew Warshall wrote: > I'm seeing the same issue with 8.18. Apparently xterm doesn't write > to /var/run/utmp by default, so getlogin () fails with errno == > ENOENT. However, isatty (0) still succeeds. The attached patch > (based on, though not interchangeable with, the sed command at > > http://www.linuxfromscratch.org/lfs/view/development/chapter06/coreutils.html) > skips the test under those conditions (at least it works on my > machine). Of course, you could alternatively take the position that > reliance on /var/run/utmp is a bug in getlogin () in gnulib; but > then I don't know how to fix it.
Thanks for the report and patch. I'm forwarding this to the bug-gnulib list since that is where this test is maintained. > --- gnulib-tests/test-getlogin.c.orig 2012-08-12 10:38:28.000000000 -0400 > +++ gnulib-tests/test-getlogin.c 2012-08-12 10:39:06.000000000 -0400 > @@ -42,9 +42,10 @@ > /* getlogin() fails when stdin is not connected to a tty. */ > ASSERT (errno == ENOTTY > || errno == EINVAL /* seen on Linux/SPARC */ > + || errno == ENOENT > ); > #if !defined __hpux /* On HP-UX 11.11 it fails anyway. */ > - ASSERT (! isatty (0)); > + ASSERT (errno == ENOENT || ! isatty (0)); > #endif > fprintf (stderr, "Skipping test: stdin is not a tty.\n"); > return 77;
