# Functions used by all tests.
#
-# Copyright (C) 2011 Simon Ruderich
+# Copyright (C) 2011-2013 Simon Ruderich
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+set -e
+
+
cleanup() {
rm -f \
+ tmp \
certificate-localhost-proxy.pem certificate-localhost-server.pem \
proxy-ca-key.pem proxy-ca.pem proxy-invalid.pem proxy-key.pem
}
+stop_servers() {
+ kill $pid_server || echo 'failed to kill gnutls-serv'
+ kill $pid_tlsproxy || echo 'failed to kill tlsproxy'
+}
abort() {
- echo abort
- pkill -n gnutls-serv
- pkill -n tlsproxy
+ echo "abort: $*"
+ stop_servers
exit 1
}
+tlsproxy() {
+ ../src/tlsproxy -d2 "$@" >/dev/null &
+ pid_tlsproxy=$!
+}
server() {
- gnutls-serv --http --port 4712 "$@" >/dev/null 2>/dev/null &
+ gnutls-serv --http --port 4712 "$@" >/dev/null 2>&1 &
+ pid_server=$!
}
client() {
./client ./proxy-ca.pem "$@" > tmp 2>&1
}
test_proxy_failure() {
- grep 'proxy failure' tmp >/dev/null || abort
+ grep 'proxy failure' tmp >/dev/null \
+ || abort 'test_proxy_failure'
grep 'response: HTTP/1.0 503 Forwarding failure' tmp >/dev/null \
- || abort
+ || abort 'test_proxy_failure 2'
}
test_proxy_successful() {
grep 'response: HTTP/1.0 200 Connection established' tmp >/dev/null \
- || abort
+ || abort 'test_proxy_successful'
}
test_invalid_certificate() {
- grep 'certificate invalid' tmp >/dev/null || abort
+ grep 'certificate invalid' tmp >/dev/null \
+ || abort 'test_invalid_certificate'
}
test_no_invalid_certificate() {
- grep 'certificate invalid' tmp >/dev/null && abort
+ grep 'certificate invalid' tmp >/dev/null \
+ && abort 'test_no_invalid_certificate' || true
}