From c40b0aed135eefb119afdb4014e8fe21f7d6589c Mon Sep 17 00:00:00 2001 From: Nikos Mavrogiannopoulos Date: Sat, 28 Nov 2015 19:41:39 +0100 Subject: [PATCH] tests: check whether append-routes directive works --- tests/Makefile.am | 2 +- tests/test-append-routes | 76 +++++++++++++++++++++++++++++++++++ tests/test-user-config.config | 1 + 3 files changed, 78 insertions(+), 1 deletion(-) create mode 100755 tests/test-append-routes diff --git a/tests/Makefile.am b/tests/Makefile.am index d900b6d4..12c1ac91 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -21,7 +21,7 @@ dist_check_SCRIPTS = test-iroute test-pass-script \ radius-test test-gssapi kerberos-test pam-test test-ban \ test-cookie-invalidation radius-test-config proxyproto-test \ proxyproto-unix-test pam-noauth-test otp-test test-user-config \ - test-cookie-rotation firewall-test + test-cookie-rotation firewall-test test-append-routes if HAVE_CWRAP dist_check_SCRIPTS += test-pass test-pass-cert test-cert test-group-pass \ diff --git a/tests/test-append-routes b/tests/test-append-routes new file mode 100755 index 00000000..8ce3f6c1 --- /dev/null +++ b/tests/test-append-routes @@ -0,0 +1,76 @@ +#!/bin/bash +# +# Copyright (C) 2015 Nikos Mavrogiannopoulos +# +# This file is part of ocserv. +# +# ocserv 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 2 of the License, or (at +# your option) any later version. +# +# ocserv 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 GnuTLS; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +SERV="${SERV:-../src/ocserv}" +srcdir=${srcdir:-.} +PORT=4612 + +# Test whether append-routes behaves as expected. + +. `dirname $0`/common.sh + +echo "Testing ocserv and user append-route application... " + +CONFFILE=${srcdir}/test-append-routes-conf.tmp +TMPFILE1=${srcdir}/test-append-routes.tmp + +rm -f ${TMPFILE1} + +cp ${srcdir}/test-user-config.config ${CONFFILE} +echo "append-routes = true" >> ${CONFFILE} +sed -i 's/= 4512/= 4612/g' ${CONFFILE} + +launch_server -d 1 -f -c ${CONFFILE} & PID=$! +wait_server $PID + +echo "Checking if routes are appended... " + +timeout 15s $OPENCONNECT localhost:$PORT -v --sslkey ${srcdir}/user-key.pem -c ${srcdir}/user-cert-testuser.pem --servercert=d66b507ae074d03b02eafca40d35f87dd81049d3 -s /bin/true ${TMPFILE1} 2>&1 + +echo "cat" +cat ${TMPFILE1} + +echo -n "Checking if routes have been sent... " + +CONTENTS=`cat ${TMPFILE1}|grep X-CSTP-Split-Include|grep "192.168.5.0/255.255.255.0"` +if test -z "$CONTENTS";then + cat ${TMPFILE1} + fail $PID "Temporary file contents are not correct; route was not found" +fi + +echo ok + +echo -n "Checking if no-routes have been sent... " + +CONTENTS=`cat ${TMPFILE1}|grep X-CSTP-Split-Exclude|grep "192.168.98.0/255.255.255.0"` +if test -z "$CONTENTS";then + cat ${TMPFILE1} + fail $PID "Temporary file contents are not correct; no-route was not found" +fi + +echo ok + +rm -f ${TMPFILE1} +rm -f ${CONFFILE} + +kill $PID +wait + +exit 0 diff --git a/tests/test-user-config.config b/tests/test-user-config.config index 84561c90..58dbee3b 100644 --- a/tests/test-user-config.config +++ b/tests/test-user-config.config @@ -163,6 +163,7 @@ ping-leases = false # mtu = route = 192.168.5.0/255.255.255.0 +no-route = 192.168.98.0/255.255.255.0 config-per-user = ./user-config/