Update to LGPL v2.1.
[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 Lesser General Public
8    License as published by the Free Software Foundation; either
9    version 2.1 of the 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    Lesser General Public License for more details.
15
16    You should have received a copy of the GNU Lesser General Public
17    License along with the GNU C Library; if not, write to the Free
18    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
19    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 }