X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=tests%2Ftests.sh;h=7794f80dc28babe905fc23efc08c72e26dddeeca;hb=2768e020f19f47e0d31ed883698a5aba1ad9d3a8;hp=21fa8f7835fcc934835ab7f8a9bce0aca542c0f6;hpb=c4343157f93bfeb4e6de858fdd61b8fb4eddafc2;p=tlsproxy%2Ftlsproxy.git diff --git a/tests/tests.sh b/tests/tests.sh index 21fa8f7..7794f80 100755 --- a/tests/tests.sh +++ b/tests/tests.sh @@ -1,124 +1,30 @@ #!/bin/sh # tlsproxy test "suite". +# +# 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 +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . # Handle empty $srcdir. [ "x$srcdir" = x ] && srcdir=. -abort() { - echo abort - pkill -n gnutls-serv - pkill -n tlsproxy - exit 1 -} -server() { - gnutls-serv --http --port 4712 "$@" >/dev/null 2>/dev/null & -} -client() { - ./client ./proxy-ca.pem "$@" > tmp 2>&1 -} +echo "RUNNING NORMAL TESTS" +"$srcdir/tests-normal.sh" || exit 1 -test_proxy_failure() { - grep 'proxy failure' tmp >/dev/null || abort - grep 'response: HTTP/1.0 503 Forwarding failure' tmp >/dev/null \ - || abort -} -test_proxy_successful() { - grep 'response: HTTP/1.0 200 Connection established' tmp >/dev/null \ - || abort -} -test_invalid_certificate() { - grep 'certificate invalid' tmp >/dev/null || abort -} -test_no_invalid_certificate() { - grep 'certificate invalid' tmp >/dev/null && abort -} - - -# Create necessary files. -$srcdir/../src/tlsproxy-setup >/dev/null 2>/dev/null - -# Normal tests. -../src/tlsproxy -d2 4711 >/dev/null & -server --x509certfile $srcdir/server.pem \ - --x509keyfile $srcdir/server-key.pem -sleep 1 - - -echo invalid hostname -client unknown-host 80 - && abort -test_proxy_failure -test_no_invalid_certificate - -echo missing proxy and server certificate -client localhost 4712 invalid || abort -test_proxy_successful -test_invalid_certificate - -# Create the proxy certificate. -$srcdir/../src/tlsproxy-add localhost $srcdir/server.pem \ - >/dev/null 2>/dev/null -rm -f certificate-localhost-server.pem - -echo missing server certificate -client localhost 4712 invalid || abort -test_proxy_successful -test_invalid_certificate - -# Create the proxy and server certificate. -$srcdir/../src/tlsproxy-add localhost $srcdir/server.pem \ - >/dev/null 2>/dev/null - -echo normal connection -client localhost 4712 localhost || abort -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 - - -echo mitm invalid hostname -client unknown-host 80 - && abort -test_proxy_failure -test_no_invalid_certificate - -echo mitm missing proxy and server certificate -client localhost 4712 invalid || abort -test_proxy_successful -test_invalid_certificate - -# Create the proxy certificate. -$srcdir/../src/tlsproxy-add localhost $srcdir/server.pem \ - >/dev/null 2>/dev/null -rm -f certificate-localhost-server.pem - -echo mitm missing server certificate -client localhost 4712 invalid || abort -test_proxy_successful -test_invalid_certificate - -# Create the proxy and server certificate. -$srcdir/../src/tlsproxy-add localhost $srcdir/server.pem \ - >/dev/null 2>/dev/null - -echo mitm normal connection -client localhost 4712 invalid || abort -test_proxy_successful -test_invalid_certificate - - -pkill -n gnutls-serv -pkill -n tlsproxy - -rm -f tmp \ - certificate-localhost-proxy.pem certificate-localhost-server.pem \ - proxy-ca-key.pem proxy-ca.pem proxy-invalid.pem proxy-key.pem -exit 0 +echo "RUNNING PASSTHROUGH (-u) TESTS" +"$srcdir/tests-passthrough.sh" || exit 1