From 4df4c009dc4c527fab0a6675584062914c6fd514 Mon Sep 17 00:00:00 2001
From: Rohit Gupta <rohit.gupta@eurecom.fr>
Date: Tue, 31 May 2016 20:17:20 +0200
Subject: [PATCH] Gitlab CI: iperf3 usage

---
 cmake_targets/autotests/tools/iperf3_script   | 52 +++++++++++++++
 .../autotests/tools/iperf3_script_phone       | 63 +++++++++++++++++++
 cmake_targets/tools/build_helper              |  3 +-
 3 files changed, 117 insertions(+), 1 deletion(-)
 create mode 100755 cmake_targets/autotests/tools/iperf3_script
 create mode 100755 cmake_targets/autotests/tools/iperf3_script_phone

diff --git a/cmake_targets/autotests/tools/iperf3_script b/cmake_targets/autotests/tools/iperf3_script
new file mode 100755
index 00000000000..35c20c07313
--- /dev/null
+++ b/cmake_targets/autotests/tools/iperf3_script
@@ -0,0 +1,52 @@
+#!/bin/bash
+#******************************************************************************
+
+#    OpenAirInterface 
+#    Copyright(c) 1999 - 2014 Eurecom
+
+#    OpenAirInterface 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.
+
+
+#    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
+#   included in this distribution in the file called "COPYING". If not, 
+#   see <http://www.gnu.org/licenses/>.
+
+#  Contact Information
+#  OpenAirInterface Admin: openair_admin@eurecom.fr
+#  OpenAirInterface Tech : openair_tech@eurecom.fr
+#  OpenAirInterface Dev  : openair4g-devel@lists.eurecom.fr
+  
+#  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
+
+# *******************************************************************************/
+# \author Navid Nikaein, Rohit Gupta
+
+#arg1 timeout to wait before running the script
+#arg2 interface
+#arg3 iperf arguments
+
+args=($*)
+timeout=${args[0]}
+iface=${args[1]}
+iperf3_args=(${args[@]:2})
+
+#array=${1:-1}
+echo "args =  ${args[@]}"
+echo "timeout = $timeout"
+echo "iface = $iface"
+echo "iperf_args = ${iperf_args[@]}"
+
+sleep $timeout
+
+while true; do var=`ifconfig $iface` ;sleep 1; if [ "$var" != "" ]; then break; fi ; done ; sleep 5
+
+iperf3 ${iperf_args[@]}
diff --git a/cmake_targets/autotests/tools/iperf3_script_phone b/cmake_targets/autotests/tools/iperf3_script_phone
new file mode 100755
index 00000000000..eff4105d037
--- /dev/null
+++ b/cmake_targets/autotests/tools/iperf3_script_phone
@@ -0,0 +1,63 @@
+#!/bin/bash
+#******************************************************************************
+
+#    OpenAirInterface 
+#    Copyright(c) 1999 - 2014 Eurecom
+
+#    OpenAirInterface 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.
+
+
+#    OpenAirInterface 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 OpenAirInterface.The full GNU General Public License is 
+#   included in this distribution in the file called "COPYING". If not, 
+#   see <http://www.gnu.org/licenses/>.
+
+#  Contact Information
+#  OpenAirInterface Admin: openair_admin@eurecom.fr
+#  OpenAirInterface Tech : openair_tech@eurecom.fr
+#  OpenAirInterface Dev  : openair4g-devel@lists.eurecom.fr
+  
+#  Address      : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
+
+# *******************************************************************************/
+# \author Navid Nikaein, Rohit Gupta
+
+#arg1 timeout to wait before running the script
+#arg2 interface
+#arg3 iperf arguments
+
+args=($*)
+timeout=${args[0]}
+device_id=${args[1]}
+iperf3_args=(${args[@]:2})
+
+#array=${1:-1}
+echo "args =  ${args[@]}"
+echo "timeout = $timeout"
+echo "device_id = $device_id"
+echo "iperf_args = ${iperf_args[@]}"
+
+sleep $timeout
+
+while true ; do
+  cmd=`sudo adb -s $device_id shell netcfg |grep 192.`
+  if [ -z "$cmd" ]; then
+     echo "Wating for UE to connect and get IP Address..."
+     sleep 1
+  else 
+     echo "UE is now connected. IP Address settings are... $cmd"
+     break
+  fi
+done
+
+echo "Starting iperf now..."
+
+sudo adb -s $device_id shell /data/local/tmp/iperf3 ${iperf_args[@]}
diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper
index a40bd8c9962..00f6842ffdd 100755
--- a/cmake_targets/tools/build_helper
+++ b/cmake_targets/tools/build_helper
@@ -293,7 +293,8 @@ check_install_oai_software() {
         python-numpy \
         sshpass \
         libxslt1-dev \
-        android-tools-adb
+        android-tools-adb \
+        iperf3
 
     $SUDO update-alternatives --set liblapack.so /usr/lib/atlas-base/atlas/liblapack.so
     
-- 
GitLab