From dc18dabe3bba880aa721a8cafa4fd78a01664892 Mon Sep 17 00:00:00 2001 From: Rohit Gupta <rohit.gupta@eurecom.fr> Date: Sun, 24 Jul 2016 20:08:21 +0200 Subject: [PATCH] Gitlab CI: iperf script changes for checking connectivity --- cmake_targets/autotests/tools/iperf_script | 60 ++++++++++++++++++---- 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/cmake_targets/autotests/tools/iperf_script b/cmake_targets/autotests/tools/iperf_script index 9f5990655e9..2431c8489d2 100755 --- a/cmake_targets/autotests/tools/iperf_script +++ b/cmake_targets/autotests/tools/iperf_script @@ -34,6 +34,8 @@ #arg2 interface #arg3 iperf arguments +echo "Start time of script: `date`" + args=($*) timeout=${args[0]} iface=${args[1]} @@ -48,17 +50,57 @@ echo "iface = $iface" echo "iperf_args = ${iperf_args[@]}" echo "ip_client = $ip_client" -sleep $timeout - -echo " Waiting for IP Address..." -while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done ; sleep 5 -if [ -n "$ip_client" ]; then -echo "Waiting for route to be setup before iperf makes connection..." - var=`route -n | grep $ip_client` - if ["$var" != "" ] ; then break; fi +# Test an IP address for validity: +# Usage: +# valid_ip IP_ADDRESS +# if [[ $? -eq 0 ]]; then echo good; else echo bad; fi +# OR +# if valid_ip IP_ADDRESS; then echo good; else echo bad; fi +# +function valid_ip() +{ + local ip=$1 + local stat=1 + + if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + OIFS=$IFS + IFS='.' + ip=($ip) + IFS=$OIFS + [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \ + && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] + stat=$? + fi + return $stat +} + +if valid_ip $iface; then + echo "$iface is Valid IP Address. Checking for connectivity..." + ping -c 1 $iface >& /dev/null + while [ "$?" != "0" ]; do + ping -c 1 $iface >& /dev/null + done + echo "$iface connectivity achieved at `date`" + +else + + echo "Waiting for Interface $iface to come up..." + while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done + echo "$iface is now available at `date`" fi -sleep 5 + +#if [ -n "$ip_client" ]; then +#echo "Waiting for route to be setup before iperf makes connection..." +# var=`route -n | grep $ip_client` +# if ["$var" != "" ] ; then break; fi +# +#fi + +echo "Sleeping for additional $timeout seconds" +sleep $timeout + +echo "Starting iperf at `date`...." iperf ${iperf_args[@]} -- GitLab