Mercurial > hg > octave-nkf > gnulib-hg
changeset 11885:e61a5067af2f
Tweak the dup2 test.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 23 Aug 2009 23:47:02 +0200 |
parents | 0c06eef5cb3b |
children | 3ac76948db10 |
files | ChangeLog tests/test-dup2.c |
diffstat | 2 files changed, 14 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-08-23 Bruno Haible <bruno@clisp.org> + + Tweak the dup2 test. + * tests/test-dup2.c (main): Create the test file empty. Verify that an + out-of-range fd yields EBADF. Verify that after writing to /dev/null, + the test file is still empty. Fix argument order of lseek. + 2009-08-23 Bruno Haible <bruno@clisp.org> Avoid test link errors when the modules getopt-gnu, gettext are used.
--- a/tests/test-dup2.c +++ b/tests/test-dup2.c @@ -65,7 +65,7 @@ { const char *file = "test-dup2.tmp"; char buffer[1]; - int fd = open (file, O_CREAT | O_RDWR, 0600); + int fd = open (file, O_CREAT | O_TRUNC | O_RDWR, 0600); /* Assume std descriptors were provided by invoker. */ ASSERT (STDERR_FILENO < fd); @@ -94,6 +94,9 @@ errno = 0; ASSERT (dup2 (fd, -2) == -1); ASSERT (errno == EBADF); + errno = 0; + ASSERT (dup2 (fd, 10000000) == -1); + ASSERT (errno == EBADF); /* Using dup2 can skip fds. */ ASSERT (dup2 (fd, fd + 2) == fd + 2); @@ -101,14 +104,15 @@ ASSERT (!is_open (fd + 1)); ASSERT (is_open (fd + 2)); - /* Prove that dup2 closes the previous occupant of a fd. */ + /* Verify that dup2 closes the previous occupant of a fd. */ ASSERT (open ("/dev/null", O_WRONLY, 0600) == fd + 1); ASSERT (dup2 (fd + 1, fd) == fd); ASSERT (close (fd + 1) == 0); ASSERT (write (fd, "1", 1) == 1); ASSERT (dup2 (fd + 2, fd) == fd); + ASSERT (lseek (fd, 0, SEEK_END) == 0); ASSERT (write (fd + 2, "2", 1) == 1); - ASSERT (lseek (fd, SEEK_SET, 0) == 0); + ASSERT (lseek (fd, 0, SEEK_SET) == 0); ASSERT (read (fd, buffer, 1) == 1); ASSERT (*buffer == '2');