/* Test of getting user name.
- Copyright (C) 2010 Free Software Foundation, Inc.
+ Copyright (C) 2010-2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "signature.h"
SIGNATURE_CHECK (getlogin, char *, (void));
+#include <errno.h>
+#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Test value. */
buf = getlogin ();
- ASSERT (buf != NULL);
+ if (buf == NULL)
+ {
+ /* getlogin() fails when stdin is not connected to a tty. */
+ ASSERT (errno == ENOTTY
+ || errno == EINVAL /* seen on Linux/SPARC */
+ );
+#if !defined __hpux /* On HP-UX 11.11 it fails anyway. */
+ ASSERT (! isatty (0));
+#endif
+ fprintf (stderr, "Skipping test: stdin is not a tty.\n");
+ return 77;
+ }
/* Compare against the value from the environment. */
#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)