[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: test-select-out failures
From: |
Bruno Haible |
Subject: |
Re: test-select-out failures |
Date: |
Tue, 11 Nov 2008 02:31:03 +0100 |
User-agent: |
KMail/1.5.4 |
Simon Josefsson wrote:
> The failing test is the first pipe test:
>
> ( { echo abc; ./test-select-fd w 1; } | { sleep 1; cat; } ) > /dev/null 2>
> t-select-out.tmp
> test `cat t-select-out.tmp` = "0" || echo exit
>
> Those two commands prints 'exit' here. The other tests, including the
> second pipe test works fine.
OK, it was probably unwise to rely on specific contents of stderr in a
test. (When I add "set -x" as second line of the test, for debugging,
it also fails due to extraneous output to stderr.)
This should improve things:
2008-11-10 Bruno Haible <address@hidden>
* tests/test-select-fd.c (main): Accept the result file name as fourth
argument.
* tests/test-select-in.sh: Pass t-select-in.tmp as fourth argument.
* tests/test-select-out.sh: Pass t-select-out.tmp as fourth argument.
*** tests/test-select-fd.c.orig 2008-11-11 02:26:07.000000000 +0100
--- tests/test-select-fd.c 2008-11-11 02:05:24.000000000 +0100
***************
*** 25,31 ****
int
main (int argc, char *argv[])
{
! if (argc == 3)
{
char mode = argv[1][0];
--- 25,31 ----
int
main (int argc, char *argv[])
{
! if (argc == 4)
{
char mode = argv[1][0];
***************
*** 35,66 ****
if (fd >= 0)
{
! fd_set fds;
! struct timeval timeout;
! int ret;
! FD_ZERO (&fds);
! FD_SET (fd, &fds);
! timeout.tv_sec = 0;
! timeout.tv_usec = 10000;
! ret = (mode == 'r'
! ? select (fd + 1, &fds, NULL, NULL, &timeout)
! : select (fd + 1, NULL, &fds, NULL, &timeout));
! if (ret < 0)
{
! perror ("select failed");
! exit (1);
! }
! if ((ret == 0) != ! FD_ISSET (fd, &fds))
! {
! fprintf (stderr, "incorrect return value\n");
! exit (1);
}
- fprintf (stderr, "%d\n", ret);
- exit (0);
}
}
}
! fprintf (stderr, "Usage: test-select-fd mode fd\n");
exit (1);
}
--- 35,72 ----
if (fd >= 0)
{
! const char *result_file_name = argv[3];
! FILE *result_file = fopen (result_file_name, "wb");
! if (result_file != NULL)
{
! fd_set fds;
! struct timeval timeout;
! int ret;
!
! FD_ZERO (&fds);
! FD_SET (fd, &fds);
! timeout.tv_sec = 0;
! timeout.tv_usec = 10000;
! ret = (mode == 'r'
! ? select (fd + 1, &fds, NULL, NULL, &timeout)
! : select (fd + 1, NULL, &fds, NULL, &timeout));
! if (ret < 0)
! {
! perror ("select failed");
! exit (1);
! }
! if ((ret == 0) != ! FD_ISSET (fd, &fds))
! {
! fprintf (stderr, "incorrect return value\n");
! exit (1);
! }
! fprintf (result_file, "%d\n", ret);
! exit (0);
}
}
}
}
! fprintf (stderr, "Usage: test-select-fd mode fd result-file-name\n");
exit (1);
}
*** tests/test-select-in.sh.orig 2008-11-11 02:26:07.000000000 +0100
--- tests/test-select-in.sh 2008-11-11 02:06:40.000000000 +0100
***************
*** 8,27 ****
# Regular files.
! ./test-select-fd${EXEEXT} r 0 < ./test-select-fd${EXEEXT} 2> t-select-in.tmp
test `cat t-select-in.tmp` = "1" || exit 1
# Pipes.
! { sleep 1; echo abc; } | ./test-select-fd${EXEEXT} r 0 2> t-select-in.tmp
test `cat t-select-in.tmp` = "0" || exit 1
! echo abc | { sleep 1; ./test-select-fd${EXEEXT} r 0; } 2> t-select-in.tmp
test `cat t-select-in.tmp` = "1" || exit 1
# Special files.
! ./test-select-fd${EXEEXT} r 0 < /dev/null 2> t-select-in.tmp
test `cat t-select-in.tmp` = "1" || exit 1
rm -fr $tmpfiles
--- 8,31 ----
# Regular files.
! rm -f t-select-in.tmp
! ./test-select-fd${EXEEXT} r 0 t-select-in.tmp < ./test-select-fd${EXEEXT}
test `cat t-select-in.tmp` = "1" || exit 1
# Pipes.
! rm -f t-select-in.tmp
! { sleep 1; echo abc; } | ./test-select-fd${EXEEXT} r 0 t-select-in.tmp
test `cat t-select-in.tmp` = "0" || exit 1
! rm -f t-select-in.tmp
! echo abc | { sleep 1; ./test-select-fd${EXEEXT} r 0 t-select-in.tmp; }
test `cat t-select-in.tmp` = "1" || exit 1
# Special files.
! rm -f t-select-in.tmp
! ./test-select-fd${EXEEXT} r 0 t-select-in.tmp < /dev/null
test `cat t-select-in.tmp` = "1" || exit 1
rm -fr $tmpfiles
*** tests/test-select-out.sh.orig 2008-11-11 02:26:07.000000000 +0100
--- tests/test-select-out.sh 2008-11-11 02:07:31.000000000 +0100
***************
*** 8,27 ****
# Regular files.
! ./test-select-fd${EXEEXT} w 1 > t-select-out.out 2> t-select-out.tmp
test `cat t-select-out.tmp` = "1" || exit 1
# Pipes.
! ( { echo abc; ./test-select-fd${EXEEXT} w 1; } | { sleep 1; cat; } ) >
/dev/null 2> t-select-out.tmp
test `cat t-select-out.tmp` = "0" || exit 1
! ( { sleep 1; echo abc; ./test-select-fd${EXEEXT} w 1; } | cat) > /dev/null 2>
t-select-out.tmp
test `cat t-select-out.tmp` = "1" || exit 1
# Special files.
! ./test-select-fd${EXEEXT} w 1 > /dev/null 2> t-select-out.tmp
test `cat t-select-out.tmp` = "1" || exit 1
rm -fr $tmpfiles
--- 8,31 ----
# Regular files.
! rm -f t-select-out.tmp
! ./test-select-fd${EXEEXT} w 1 t-select-out.tmp > t-select-out.out
test `cat t-select-out.tmp` = "1" || exit 1
# Pipes.
! rm -f t-select-out.tmp
! ( { echo abc; ./test-select-fd${EXEEXT} w 1 t-select-out.tmp; } | { sleep 1;
cat; } ) > /dev/null
test `cat t-select-out.tmp` = "0" || exit 1
! rm -f t-select-out.tmp
! ( { sleep 1; echo abc; ./test-select-fd${EXEEXT} w 1 t-select-out.tmp; } |
cat) > /dev/null
test `cat t-select-out.tmp` = "1" || exit 1
# Special files.
! rm -f t-select-out.tmp
! ./test-select-fd${EXEEXT} w 1 t-select-out.tmp > /dev/null
test `cat t-select-out.tmp` = "1" || exit 1
rm -fr $tmpfiles