bug-gnulib
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]