Don't require the value of FD_ISSET to be exactly one.
[kopensolaris-gnu/glibc.git] / misc / tst-fdset.c
1 /* Test FD* macros.
2    Copyright (C) 1997 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4    Contributed by Robert Bihlmeyer <robbe@orcus.priv.at>.
5
6    The GNU C Library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Library General Public License as
8    published by the Free Software Foundation; either version 2 of the
9    License, or (at your option) any later version.
10
11    The GNU C Library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Library General Public License for more details.
15
16    You should have received a copy of the GNU Library General Public
17    License along with the GNU C Library; see the file COPYING.LIB.  If not,
18    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19    Boston, MA 02111-1307, USA.  */
20
21 #include <stdio.h>
22 #include <sys/types.h>
23
24 int
25 main (void)
26 {
27   int retval = 0;
28   int i;
29   fd_set set;
30
31   FD_ZERO (&set);
32   for (i=0; i < FD_SETSIZE; ++i)
33     {
34       printf ("%d =>  check:", i);
35       if (FD_ISSET (i, &set) == 0)
36         fputs ("ok", stdout);
37       else
38         {
39           fputs ("nok", stdout);
40           retval = 1;
41         }
42       fputs (", set", stdout);
43       FD_SET (i, &set);
44       fputs (", check:", stdout);
45       if (FD_ISSET (i, &set))
46         fputs ("ok", stdout);
47       else
48         {
49           fputs ("nok", stdout);
50           retval = 1;
51         }
52       fputs (", clear", stdout);
53       FD_CLR (i, &set);
54       fputs (", check:", stdout);
55       if (FD_ISSET (i, &set) == 0)
56         puts ("ok");
57       else
58         {
59           puts ("nok");
60           retval = 1;
61         }
62     }
63
64   return retval;
65 }