]> ruderich.org/simon Gitweb - tlsproxy/tlsproxy.git/blobdiff - tests/tests-passthrough.sh
Update copyright year.
[tlsproxy/tlsproxy.git] / tests / tests-passthrough.sh
index c93fbba2829ed66fbe9c8eee0cb6a77b15222f25..e8eeffa1d283e5c26dd636755d97363b7cc2750f 100755 (executable)
@@ -2,7 +2,7 @@
 
 # tlsproxy tests for the -u option.
 #
-# Copyright (C) 2011-2012  Simon Ruderich
+# Copyright (C) 2011-2014  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/>.
 
 
-# Handle empty $srcdir.
-[ "x$srcdir" = x ] && srcdir=.
-
+test "x$srcdir" = x && srcdir=.
 . "$srcdir/common.sh"
 
 
 # Create necessary files.
 cleanup
-"$srcdir/../src/tlsproxy-setup" >/dev/null 2>/dev/null
+tlsproxy_setup
 
 # Normal tests.
-../src/tlsproxy -d2 -u 4711 >/dev/null &
-server --x509certfile "$srcdir/server.pem" \
-       --x509keyfile "$srcdir/server-key.pem"
-sleep 1
+tlsproxy_background -u 4711
+server_background --x509certfile "$srcdir/server.pem" \
+                  --x509keyfile "$srcdir/server-key.pem"
+wait_for_ports 4711 4712
 
 
 echo invalid hostname
-client unknown-host 80 - && abort
+client unknown-host 80 - && abort 'client unknown-host 80 -'
 test_proxy_failure
 test_no_invalid_certificate
 
 echo missing proxy and server certificate
-client localhost 4712 'test server' || abort
+client localhost 4712 'test server' || abort 'client localhost 4712 test server'
 test_proxy_successful
 test_invalid_certificate
 
 # Create the proxy certificate.
-"$srcdir/../src/tlsproxy-add" localhost "$srcdir/server.pem" \
-    >/dev/null 2>/dev/null
+tlsproxy_add localhost server.pem
 
 echo missing server certificate
 mv certificate-localhost-server.pem .pem
-client localhost 4712 'test server' || abort
+client localhost 4712 'test server' || abort 'client localhost 4712 test server'
 mv .pem certificate-localhost-server.pem
 test_proxy_successful
 test_invalid_certificate
 
 echo missing proxy certificate
-mv certificate-localhost-proxy.pem .pem
+mv certificate-localhost-proxy.pem certificate-www.localhost-proxy.pem
 # "invalid" to prevent user error if the proxy certificate gets deleted (but
 # the server certificate is still readable).
-client localhost 4712 invalid || abort
-mv .pem certificate-localhost-proxy.pem
+client localhost 4712 invalid || abort 'client localhost 4712 invalid'
+mv certificate-www.localhost-proxy.pem certificate-localhost-proxy.pem
 test_proxy_successful
 test_invalid_certificate
 
 echo normal connection
 # 'localhost' is the CN of tlsproxy's certificate.
-client localhost 4712 localhost || abort
+client localhost 4712 localhost || abort 'client localhost 4712 localhost'
 test_proxy_successful
 test_no_invalid_certificate
 
 
 # Stop server and try a "MITM" with a bad certificate.
 echo
-pkill -n gnutls-serv
-server --x509certfile "$srcdir/server-bad.pem" \
-       --x509keyfile "$srcdir/server-key.pem"
-sleep 1
+kill $pid_server || echo 'failed to kill gnutls-serv'
+sleep 3 # necessary on some systems like OpenBSD
+server_background --x509certfile "$srcdir/server-bad.pem" \
+                  --x509keyfile "$srcdir/server-key.pem"
+wait_for_ports 4712
 rm -f certificate-localhost-proxy.pem certificate-localhost-server.pem
 
 
 echo mitm invalid hostname
-client unknown-host 80 - && abort
+client unknown-host 80 - && abort 'client unknown-host 80 -'
 test_proxy_failure
 test_no_invalid_certificate
 
 echo mitm missing proxy and server certificate
-client localhost 4712 'test server bad' || abort
+client localhost 4712 'test server bad' || abort 'client localhost 4712 test server bad'
 test_proxy_successful
 test_invalid_certificate
 
 # Create the proxy certificate.
-"$srcdir/../src/tlsproxy-add" localhost "$srcdir/server.pem" \
-    >/dev/null 2>/dev/null
+tlsproxy_add localhost server.pem
 
 echo mitm missing server certificate
-mv certificate-localhost-server.pem .pem
-client localhost 4712 'test server bad' || abort
-mv .pem certificate-localhost-server.pem
+mv certificate-localhost-server.pem certificate-www.localhost-server.pem
+client localhost 4712 'test server bad' || abort 'client localhost 4712 test server bad'
+mv certificate-www.localhost-server.pem certificate-localhost-server.pem
 test_proxy_successful
 test_invalid_certificate
 
 echo mitm missing proxy certificate
-mv certificate-localhost-proxy.pem .pem
+mv certificate-localhost-proxy.pem certificate-www.localhost-proxy.pem
 # "invalid" to prevent user error if the proxy certificate gets deleted (but
 # the server certificate is still readable).
-client localhost 4712 invalid || abort
-mv .pem certificate-localhost-proxy.pem
+client localhost 4712 invalid || abort 'client localhost 4712 invalid'
+mv certificate-www.localhost-proxy.pem certificate-localhost-proxy.pem
 test_proxy_successful
 test_invalid_certificate
 
 echo mitm normal connection
-client localhost 4712 invalid || abort
+client localhost 4712 invalid || abort 'client localhost 4712 invalid'
 test_proxy_successful
 test_invalid_certificate
 
 
-pkill -n gnutls-serv
-pkill -n tlsproxy
-
+# stop_servers in trap-handler
 cleanup
-rm -f tmp
 
 exit 0