]> arthur.barton.de Git - netatalk.git/blob - libevent/test/test.sh
Add libevent
[netatalk.git] / libevent / test / test.sh
1 #!/bin/sh
2
3 FAILED=no
4
5 if test "x$TEST_OUTPUT_FILE" = "x"
6 then
7         TEST_OUTPUT_FILE=/dev/null
8 fi
9
10 # /bin/echo is a little more likely to support -n than sh's builtin echo.
11 if test -x /bin/echo
12 then
13         ECHO=/bin/echo
14 else
15         ECHO=echo
16 fi
17
18 if test "$TEST_OUTPUT_FILE" != "/dev/null"
19 then
20         touch "$TEST_OUTPUT_FILE" || exit 1
21 fi
22
23 TEST_DIR=.
24
25 T=`echo "$0" | sed -e 's/test.sh$//'`
26 if test -x "$T/test-init"
27 then
28         TEST_DIR="$T"
29 fi
30
31 setup () {
32         EVENT_NOKQUEUE=yes; export EVENT_NOKQUEUE
33         EVENT_NODEVPOLL=yes; export EVENT_NODEVPOLL
34         EVENT_NOPOLL=yes; export EVENT_NOPOLL
35         EVENT_NOSELECT=yes; export EVENT_NOSELECT
36         EVENT_NOEPOLL=yes; export EVENT_NOEPOLL
37         unset EVENT_EPOLL_USE_CHANGELIST
38         EVENT_NOEVPORT=yes; export EVENT_NOEVPORT
39         EVENT_NOWIN32=yes; export EVENT_NOWIN32
40 }
41
42 announce () {
43         echo "$@"
44         echo "$@" >>"$TEST_OUTPUT_FILE"
45 }
46
47 announce_n () {
48         $ECHO -n "$@"
49         echo "$@" >>"$TEST_OUTPUT_FILE"
50 }
51
52
53 run_tests () {
54         if $TEST_DIR/test-init 2>>"$TEST_OUTPUT_FILE" ;
55         then
56                 true
57         else
58                 announce Skipping test
59                 return
60         fi
61
62         announce_n " test-eof: "
63         if $TEST_DIR/test-eof >>"$TEST_OUTPUT_FILE" ;
64         then
65                 announce OKAY ;
66         else
67                 announce FAILED ;
68                 FAILED=yes
69         fi
70         announce_n " test-weof: "
71         if $TEST_DIR/test-weof >>"$TEST_OUTPUT_FILE" ;
72         then
73                 announce OKAY ;
74         else
75                 announce FAILED ;
76                 FAILED=yes
77         fi
78         announce_n " test-time: "
79         if $TEST_DIR/test-time >>"$TEST_OUTPUT_FILE" ;
80         then
81                 announce OKAY ;
82         else
83                 announce FAILED ;
84                 FAILED=yes
85         fi
86         announce_n " test-changelist: "
87         if $TEST_DIR/test-changelist >>"$TEST_OUTPUT_FILE" ;
88         then
89                 announce OKAY ;
90         else
91                 announce FAILED ;
92                 FAILED=yes
93         fi
94         announce_n " regress: "
95         if test "$TEST_OUTPUT_FILE" = "/dev/null" ;
96         then
97                 $TEST_DIR/regress --quiet
98         else
99                 $TEST_DIR/regress >>"$TEST_OUTPUT_FILE"
100         fi
101         if test "$?" = "0" ;
102         then
103                 announce OKAY ;
104         else
105                 announce FAILED ;
106                 FAILED=yes
107         fi
108 }
109
110 announce "Running tests:"
111
112 # Need to do this by hand?
113 setup
114 unset EVENT_NOEVPORT
115 announce "EVPORT"
116 run_tests
117
118 setup
119 unset EVENT_NOKQUEUE
120 announce "KQUEUE"
121 run_tests
122
123 setup
124 unset EVENT_NOEPOLL
125 announce "EPOLL"
126 run_tests
127
128 setup
129 unset EVENT_NOEPOLL
130 EVENT_EPOLL_USE_CHANGELIST=yes; export EVENT_EPOLL_USE_CHANGELIST
131 announce "EPOLL (changelist)"
132 run_tests
133
134 setup
135 unset EVENT_NODEVPOLL
136 announce "DEVPOLL"
137 run_tests
138
139 setup
140 unset EVENT_NOPOLL
141 announce "POLL"
142 run_tests
143
144 setup
145 unset EVENT_NOSELECT
146 announce "SELECT"
147 run_tests
148
149 setup
150 unset EVENT_NOWIN32
151 announce "WIN32"
152 run_tests
153
154 if test "$FAILED" = "yes"; then
155         exit 1
156 fi