From 9cddf9deda4c6ac0339d3aa4be3cceef4d8e9b6a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 19 Dec 2001 00:21:23 +0000 Subject: Update. 2001-12-18 Jakub Jelinek * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S (clone): Subtract stack bias from child stack pointer before passing it to clone syscall. 2001-12-18 Ulrich Drepper * sysdeps/posix/sysconf.c (__sysconf): Respect POSIX minimum for _SC_TZNAME_MAX. * sysdeps/generic/sysconf.c (__sysconf): Likewise. Reported by Thorsten Kukuk . * sysdeps/unix/grantpt.c (grantpt): Correct typo in comment and add some casts. * sysdeps/unix/sysv/linux/grantpt.c: Make __unix_grantpt static. 2001-12-18 Thorsten Kukuk * sysdeps/unix/sysv/linux/grantpt.c: Make errno results standard conforming: return EBADF if file descriptor is invalid and EINVAL if file descriptor is no valid tty. * login/tst-grantpt.c: New file. * login/Makefile (tests): Add tst-grantpt. --- login/Makefile | 2 +- login/tst-grantpt.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 login/tst-grantpt.c (limited to 'login') diff --git a/login/Makefile b/login/Makefile index b1fd3055e7..97fab761f3 100644 --- a/login/Makefile +++ b/login/Makefile @@ -37,7 +37,7 @@ distribute := utmp-private.h pty-private.h subdir-dirs = programs vpath %.c programs -tests := tst-utmp tst-utmpx +tests := tst-utmp tst-utmpx tst-grantpt # Build the -lutil library with these extra functions. extra-libs := libutil diff --git a/login/tst-grantpt.c b/login/tst-grantpt.c new file mode 100644 index 0000000000..9b993daaca --- /dev/null +++ b/login/tst-grantpt.c @@ -0,0 +1,78 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +static int +test_ebadf (void) +{ + int fd, ret, err; + + fd = posix_openpt (O_RDWR); + if (fd == -1) + { + printf ("posix_openpt(O_RDWR) failed\nerrno %d (%s)\n", + errno, strerror (errno)); + /* We don't fail because of this; maybe the system does not have + SUS pseudo terminals. */ + return 0; + } + unlockpt (fd); + close (fd); + + ret = grantpt (fd); + err = errno; + if (ret != -1 || err != EBADF) + { + printf ("grantpt(): expected: return = %d, errno = %d\n", -1, EBADF); + printf (" got: return = %d, errno = %d\n", ret, err); + return 1; + } + return 0; +} + +static int +test_einval (void) +{ + int fd, ret, err; + const char file[] = "./grantpt-einval"; + + fd = open (file, O_RDWR | O_CREAT); + if (fd == -1) + { + printf ("open(\"%s\", O_RDWR) failed\nerrno %d (%s)\n", + file, errno, strerror (errno)); + return 0; + } + unlink (file); + + ret = grantpt (fd); + err = errno; + if (ret != -1 || err != EINVAL) + { + printf ("grantpt(): expected: return = %d, errno = %d\n", -1, EINVAL); + printf (" got: return = %d, errno = %d\n", ret, err); + ret = 1; + } + else + ret = 0; + + close (fd); + + return ret; +} + +int +main (void) +{ + int result = 0; + + result += test_ebadf (); + result += test_einval (); + + return result; +} -- cgit v1.2.3