summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaresh Kamboju <naresh.kamboju@linaro.org>2016-05-31 14:36:59 +0530
committerNaresh Kamboju <naresh.kamboju@linaro.org>2016-05-31 14:36:59 +0530
commit963f2d6a663ce726ed5b54248a7818e4008ce1b5 (patch)
tree7f53e3464c5fc951ece31ef9c95ed19401defeff
parent5fa2dd22acf828d8df530a0d494c11d5d33beb1f (diff)
ubuntu: wlan-download-test: pre_setup, download and validate
Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
-rwxr-xr-xubuntu/scripts/wlan-download-test.sh100
1 files changed, 87 insertions, 13 deletions
diff --git a/ubuntu/scripts/wlan-download-test.sh b/ubuntu/scripts/wlan-download-test.sh
index 7775752..bf2ce2e 100755
--- a/ubuntu/scripts/wlan-download-test.sh
+++ b/ubuntu/scripts/wlan-download-test.sh
@@ -28,22 +28,96 @@
URL=$1
MD5SUM_CHECK=$2
OUTPUT_FILE_NAME="output_file"
-CURL=`which curl`
MD5SUM=`which md5sum`
+GET_MD5SUM=""
+WLAN_INTERFACE=""
+OLD_GATEWAY_IP=""
+OLD_GATEWAY_INTERFACE=""
+WLAN_GATEWAY_IP=""
+WLAN_GATEWAY=""
+GET_MD5SUM=""
-# Assume wlan is up and running
-WLAN=`/sbin/ifconfig | grep wlan | awk '{print $1}'`
+pre_setup() {
+ # print ifconfig to know available interfaces
+ ifconfig
-which curl
-if [ $? -eq 0 ] ; then
- curl -# --connect-timeout 1800 --interface $WLAN $URL > $OUTPUT_FILE_NAME
-fi
+ # make sure that rp_filter is set to 0
+ echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
+ echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
+}
-# Get md5sum of output_file
-GET_MD5SUM=`$MD5SUM $OUTPUT_FILE_NAME | awk '{print $1}'`
-echo "GET_MD5SUM = $GET_MD5SUM"
-if [ "$MD5SUM_CHECK" = $GET_MD5SUM ] ; then
+get_interface_and_ipaddr() {
+ # Assume eth and wlan are up and running
+ WLAN_INTERFACE=`/sbin/ifconfig | grep wlan | awk '{print $1}'`
+ echo wlan interface $WLAN_INTERFACE
+
+ OLD_GATEWAY_IP=`ip route list | grep default |awk '{print $3}'`
+ echo old gate way ip $OLD_GATEWAY_IP
+
+ OLD_GATEWAY_INTERFACE=`ip route list | grep default |awk '{print $5}'`
+ echo old gate way ip $OLD_GATEWAY_INTERFACE
+
+ WLAN_GATEWAY_IP=`ip route list | grep wlan |awk '{print $1}' | cut -f1 -d'/'`
+ echo wlan gateway IP $WLAN_GATEWAY_IP
+
+ WLAN_GATEWAY=`echo $WLAN_GATEWAY_IP | awk -F'.' '{$NF=1; print}' OFS="."`
+ echo wlan gateway $WLAN_GATEWAY
+}
+
+del_primary_route() {
+ ip route del default dev $OLD_GATEWAY_INTERFACE via $OLD_GATEWAY_IP
+}
+
+add_wlan_route() {
+ ip route add default dev $WLAN_INTERFACE via $WLAN_GATEWAY
+}
+
+del_wlan_route() {
+ ip route del default dev $WLAN_INTERFACE via $WLAN_GATEWAY
+}
+
+set_back_primary_route() {
+ ip route add default dev $OLD_GATEWAY_INTERFACE via $OLD_GATEWAY_IP
+}
+
+download_via_wlan() {
+ which curl
+ if [ $? -eq 0 ] ; then
+ curl -# --connect-timeout 1800 --interface $WLAN_INTERFACE $URL > $OUTPUT_FILE_NAME
+ if [ $? -eq 0 ] ; then
+ echo "curl-file-download=pass"
+ else
+ echo "curl-file-download=fail"
+ fi
+ else
+ echo "curl command not found test exit"
+ exit 1
+ fi
+}
+
+validate_check_sum() {
+ # Get md5sum of output_file
+ GET_MD5SUM=`$MD5SUM $OUTPUT_FILE_NAME | awk '{print $1}'`
+ echo "GET_MD5SUM = $GET_MD5SUM"
+ if [ "$MD5SUM_CHECK" = $GET_MD5SUM ] ; then
echo "wlan-download-testcase=pass"
-else
+ else
echo "wlan-download-testcase=fail"
-fi
+ fi
+}
+
+# Prerequisite
+pre_setup
+get_interface_and_ipaddr
+del_primary_route
+add_wlan_route
+
+# Running Test
+download_via_wlan
+validate_check_sum
+
+# Set back to original state
+del_wlan_route
+set_back_primary_route
+
+exit 0