Hi, I run all my cross-platform clients tests via t_client.sh, and a few things started to annoy me:
- must run "make check" as root (which is problematic for buildbot) - just prints "test #4", but doesn't tell me what this particular test is doing ("tcp/tap/ipv4-only"). So - add a variable that can be used to call sudo, and add another set of config variables that will make it print out a user-specified title of what it's doing. Fairly trivial, really, but might be useful for someone else as well :-) gert -- USENET is *not* the non-clickable part of WWW! //www.muc.de/~gert/ Gert Doering - Munich, Germany g...@greenie.muc.de fax: +49-89-35655025 g...@net.informatik.tu-muenchen.de
From adb6db537a7ed6a4c313bb5b213bfdbbbf6c41ad Mon Sep 17 00:00:00 2001 From: Gert Doering <g...@greenie.muc.de> List-Post: openvpn-devel@lists.sourceforge.net Date: Sun, 22 Jan 2012 22:37:25 +0100 Subject: [PATCH] add "print test titles" and "use sudo" functionality to t_client.rc Signed-off-by: Gert Doering <g...@greenie.muc.de> --- t_client.rc-sample | 9 +++++++++ t_client.sh.in | 23 ++++++++++++++--------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/t_client.rc-sample b/t_client.rc-sample index ca59c68..e766b5d 100644 --- a/t_client.rc-sample +++ b/t_client.rc-sample @@ -20,6 +20,12 @@ REMOTE=mytestserver TEST_RUN_LIST="1 2" # +# use "sudo" (etc) to give openvpn the necessary privileges +# if this is not active, "make check" must be run as root +# +#RUN_SUDO=sudo + +# # base confic that is the same for all the p2mp test runs # OPENVPN_BASE_P2MP="--client --ca $CA_CERT \ @@ -39,6 +45,7 @@ OPENVPN_BASE_P2P="..." # # possible test options: # +# RUN_TITLE_x="what is being tested on here" (purely informational) # OPENVPN_CONF_x = "how to call ./openvpn" [mandatory] # EXPECT_IFCONFIG4_x = "this IPv4 address needs to show up in ifconfig" # EXPECT_IFCONFIG6_x = "this IPv6 address needs to show up in ifconfig" @@ -48,6 +55,7 @@ OPENVPN_BASE_P2P="..." # Test 1: UDP / p2mp tun # specify IPv4+IPv6 addresses expected from server and ping targets # +RUN_TITLE_1="testing tun/udp/ipv4+ipv6" OPENVPN_CONF_1="$OPENVPN_BASE_P2MP --dev tun --proto udp --remote $REMOTE --port 51194" EXPECT_IFCONFIG4_1="10.100.50.6" EXPECT_IFCONFIG6_1="2001:dba:a050::1:0" @@ -56,6 +64,7 @@ PING6_HOSTS_1="2001:dba::1 2001:dba:a050::1" # Test 2: TCP / p2mp tun # +RUN_TITLE_2="testing tun/tcp/ipv4+ipv6" OPENVPN_CONF_2="$OPENVPN_BASE_P2MP --dev tun --proto tcp --remote $REMOTE --port 51194" EXPECT_IFCONFIG4_2="10.100.51.6" EXPECT_IFCONFIG6_2="2001:dba:a051::1:0" diff --git a/t_client.sh.in b/t_client.sh.in index b273964..a6377db 100755 --- a/t_client.sh.in +++ b/t_client.sh.in @@ -50,8 +50,12 @@ ID=`id` if expr "$ID" : "uid=0" >/dev/null then : else - echo "$0: this test must run be as root. SKIP." >&2 - exit 77 + if [ -z "$RUN_SUDO" ] + then + echo "$0: this test must run be as root, or RUN_SUDO=... " >&2 + echo " must be set correctly in 't_client.rc'. SKIP." >&2 + exit 77 + fi fi LOGDIR=t_client-`hostname`-`date +%Y%m%d-%H%M%S` @@ -199,19 +203,20 @@ run_ping_tests() # ---------------------------------------------------------- for SUF in $TEST_RUN_LIST do - echo -e "\n### test run $SUF ###\n" - fail_count=0 - - echo "save pre-openvpn ifconfig + route" - get_ifconfig_route >$LOGDIR/$SUF:ifconfig_route_pre.txt - # get config variables + eval test_run_title=\"\$RUN_TITLE_$SUF\" eval openvpn_conf=\"\$OPENVPN_CONF_$SUF\" eval expect_ifconfig4=\"\$EXPECT_IFCONFIG4_$SUF\" eval expect_ifconfig6=\"\$EXPECT_IFCONFIG6_$SUF\" eval ping4_hosts=\"\$PING4_HOSTS_$SUF\" eval ping6_hosts=\"\$PING6_HOSTS_$SUF\" + echo -e "\n### test run $SUF: '$test_run_title' ###\n" + fail_count=0 + + echo "save pre-openvpn ifconfig + route" + get_ifconfig_route >$LOGDIR/$SUF:ifconfig_route_pre.txt + echo -e "\nrun pre-openvpn ping tests - targets must not be reachable..." run_ping_tests 4 want_fail "$ping4_hosts" run_ping_tests 6 want_fail "$ping6_hosts" @@ -224,7 +229,7 @@ do fi echo " run ./openvpn $openvpn_conf" - ./openvpn $openvpn_conf >$LOGDIR/$SUF:openvpn.log & + $RUN_SUDO ./openvpn $openvpn_conf >$LOGDIR/$SUF:openvpn.log & opid=$! # make sure openvpn client is terminated in case shell exits -- 1.7.7
pgp3xNqwghDjF.pgp
Description: PGP signature