X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=tests%2Fcommon.sh;h=ff457457c3dfee76eadead61a7a7d3b536e34a92;hb=e70b5abf4baa2a8780ed26d026a8aae1c241ebc4;hp=d2b3459cee64123b75e81d65f3b80123c50e6aff;hpb=9fb20ff647d6d494d99184875d2c60586107d34c;p=tlsproxy%2Ftlsproxy.git diff --git a/tests/common.sh b/tests/common.sh index d2b3459..ff45745 100644 --- a/tests/common.sh +++ b/tests/common.sh @@ -19,6 +19,12 @@ set -e +# Terminate all running servers when the script terminates. +trap 'stop_servers' 0 +# Same when the user presses Ctrl-C. +trap 'abort SIGINT' INT + + cleanup() { rm -f \ tmp tlsproxy-log \ @@ -26,14 +32,28 @@ cleanup() { 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' + if test -n "$pid_server"; then + kill $pid_server || echo 'failed to kill gnutls-serv' + fi + if test -n "$pid_tlsproxy"; then + kill $pid_tlsproxy || echo 'failed to kill tlsproxy' + fi } abort() { echo "abort: $*" stop_servers exit 1 } +tlsproxy_setup() { + "$srcdir/../src/tlsproxy-setup" >/dev/null 2>&1 +} +tlsproxy_add() { + # `make distcheck` marks the source PEM-file as read-only which is copied + # over when using `cp`. This causes a check failure when tlsproxy_add() is + # called again with the same hostname. Instead use redirection which + # doesn't use `cp`. + "$srcdir/../src/tlsproxy-add" "$1" < "$srcdir/$2" >/dev/null 2>&1 +} tlsproxy() { ../src/tlsproxy -d2 "$@" >tlsproxy-log 2>&1 & pid_tlsproxy=$!