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