Add test for --forward
[darkhttpd] / devel / cover
1 #!/bin/sh
2 #
3 # Coverage and unit tests!
4 #
5 cd $(dirname $0)
6 DIR=tmp.httpd.tests
7 PORT=12346
8
9 if [ ! -e test.py ]; then
10         echo "can't find test.py, aborting" >&2
11         exit 1
12 fi
13 if [ \( ! -x a.out \) -o \( ../darkhttpd.c -nt a.out \) ]; then
14         gcc -g -fprofile-arcs -ftest-coverage ../darkhttpd.c || exit 1
15         # generates a.out, darkhttpd.gcno
16 fi
17 if [ -e $DIR ]; then
18         rm -rf $DIR || exit 1
19 fi
20 mkdir $DIR || exit 1
21 rm -f darkhttpd.gcda darkhttpd.log
22 # display usage statement
23 ./a.out >/dev/null
24
25 # run tests against a basic instance (generates darkhttpd.gcda)
26 ./a.out $DIR --port $PORT --log darkhttpd.log &
27 PID=$!
28 kill -0 $PID || exit 1
29 python test.py
30 kill $PID
31
32 # run forward tests
33 ./a.out $DIR --port $PORT \
34   --forward example.com http://www.example.com \
35   --forward secure.example.com https://www.example.com/secure &
36 PID=$!
37 kill -0 $PID || exit 1
38 python test_forward.py
39 kill $PID
40
41 echo generating darkhttpd.c.gcov report
42 gcov darkhttpd
43 rm -rf $DIR
44 rm -f darkhttpd.gcda darkhttpd.gcno darkhttpd.log a.out
45 echo done