#!/bin/sh # # Coverage and unit tests! # cd $(dirname $0) DIR=tmp.httpd.tests PORT=12346 if [ ! -e test.py ]; then echo "can't find test.py, aborting" >&2 exit 1 fi if [ \( ! -x a.out \) -o \( ../darkhttpd.c -nt a.out \) ]; then gcc -g -fprofile-arcs -ftest-coverage ../darkhttpd.c || exit 1 # generates a.out, darkhttpd.gcno fi if [ -e $DIR ]; then rm -rf $DIR || exit 1 fi mkdir $DIR || exit 1 rm -f darkhttpd.gcda darkhttpd.log # display usage statement ./a.out >/dev/null # run tests against a basic instance (generates darkhttpd.gcda) ./a.out $DIR --port $PORT --log darkhttpd.log & PID=$! kill -0 $PID || exit 1 python test.py kill $PID # run forward tests ./a.out $DIR --port $PORT \ --forward example.com http://www.example.com \ --forward secure.example.com https://www.example.com/secure & PID=$! kill -0 $PID || exit 1 python test_forward.py kill $PID echo generating darkhttpd.c.gcov report gcov darkhttpd rm -rf $DIR rm -f darkhttpd.gcda darkhttpd.gcno darkhttpd.log a.out echo done