Hi,

working on the test server, I noticed that t_client.sh was no longer run
from "make check", and that it lost "read t_client.rc from build dir"
(which is needed when building different clients from a common source
dir, and wanting to run t_client with different option sets).

The attached patch restores lost functionality, and adds one extra
feature, optionally waiting longer for OpenVPN startup (if the server
has a high RTT, 10 seconds is not always enough).

David, this has been tested on FreeBSD 7.4 (so far) and is essential 
for the buildbot client tests :-) - more platform tests will follow
as soon as I have all the server stanzas up and running.

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 125b3c96dc60694eb50dc4a85e758727864e83ee Mon Sep 17 00:00:00 2001
From: Gert Doering <g...@greenie.muc.de>
List-Post: openvpn-devel@lists.sourceforge.net
Date: Sun, 27 May 2012 23:19:11 +0300
Subject: [PATCH] repair t_client.sh test after build system revolution

- run t_client.sh at "make check" time
- in t_client.sh, read t_client.rc from source *or* build dir (as before)
- @IP@ evaluates to "" now (not "ip") if iproute2 not found - adapt script
- introduce $SETUP_TIME_WAIT to delay "waiting for openvpn startup" longer
  than the default delay of 10 seconds - this is needed for test servers
  with a high network RTT

Signed-off-by: Gert Doering <g...@greenie.muc.de>
---
 tests/Makefile.am    |    5 ++---
 tests/t_client.sh.in |   13 ++++++++-----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6ae845b..b7980e0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -12,13 +12,12 @@
 MAINTAINERCLEANFILES = \
        $(srcdir)/Makefile.in
 
-test_scripts = t_lpback.sh t_cltsrv.sh
+test_scripts = t_client.sh t_lpback.sh t_cltsrv.sh
 
 TESTS_ENVIRONMENT = top_srcdir="$(top_srcdir)"
 TESTS = $(test_scripts)
 
 dist_noinst_SCRIPTS = \
        $(test_scripts) \
-       t_cltsrv-down.sh \
-       t_client.sh
+       t_cltsrv-down.sh
 
diff --git a/tests/t_client.sh.in b/tests/t_client.sh.in
index 7ba124c..92e4d2e 100755
--- a/tests/t_client.sh.in
+++ b/tests/t_client.sh.in
@@ -14,16 +14,19 @@
 
 srcdir="${srcdir:-.}"
 top_builddir="${top_builddir:-..}"
-if [ -r "${srcdir}"/t_client.rc ] ; then
+if [ -r "${top_builddir}"/t_client.rc ] ; then
+    . "${top_builddir}"/t_client.rc
+elif [ -r "${srcdir}"/t_client.rc ] ; then
     . "${srcdir}"/t_client.rc
 else
-    echo "$0: cannot find 't_client.rc' in ('${srcdir}'). SKIPPING TEST." >&2
+    echo "$0: cannot find 't_client.rc' in build dir ('${top_builddir}')" >&2
+    echo "$0: or source directory ('${srcdir}'). SKIPPING TEST." >&2
     exit 77
 fi
 
 if [ ! -x "${top_builddir}/src/openvpn/openvpn" ]
 then
-    echo "no (executable) openvpn binary in current directory. FAIL." >&2
+    echo "no (executable) openvpn binary in current build tree. FAIL." >&2
     exit 1
 fi
 
@@ -83,7 +86,7 @@ fail()
 get_ifconfig_route()
 {
     # linux / iproute2? (-> if configure got a path)
-    if [ "@IPROUTE@" != "ip" ]
+    if [ "@IPROUTE@" != "" ]
     then
        echo "-- linux iproute2 --"
        @IPROUTE@ addr show     | grep -v valid_lft
@@ -236,7 +239,7 @@ do
     trap "$RUN_SUDO kill $opid ; trap - 0 ; exit 1" 1 2 3 15
 
     echo "wait for connection to establish..."
-    sleep 10
+    sleep ${SETUP_TIME_WAIT:-10}
 
     # test whether OpenVPN process is still there
     if $RUN_SUDO kill -0 $opid
-- 
1.7.3.5

Attachment: pgpIomJuyztve.pgp
Description: PGP signature

Reply via email to