summaryrefslogtreecommitdiff
path: root/ubuntu/scripts
diff options
context:
space:
mode:
authorBotao Sun <botao.sun@linaro.org>2014-01-28 20:13:05 +1100
committerBotao Sun <botao.sun@linaro.org>2014-01-29 20:22:25 +1100
commite7951d1a57724a4b98806a4f1bb284a6e340c5bf (patch)
treea2ddd67fda020cb7ac013db4aaef9762d634a890 /ubuntu/scripts
parentb06cf068652650a9e84a4a842f395ac2ab1d7b7a (diff)
Add WiFi Test for Linux Linaro ubuntu
Test code has been validated in LAVA on TI Panda 4460. SSID and PASSWORD are possible to be set in JSON. Signed-off by: Botao Sun <botao.sun@linaro.org> Change-Id: I814b0ab145d28bd6c733cb601bb02440bef44638
Diffstat (limited to 'ubuntu/scripts')
-rwxr-xr-xubuntu/scripts/wifi-ubuntu.sh107
1 files changed, 107 insertions, 0 deletions
diff --git a/ubuntu/scripts/wifi-ubuntu.sh b/ubuntu/scripts/wifi-ubuntu.sh
new file mode 100755
index 0000000..5b2d39c
--- /dev/null
+++ b/ubuntu/scripts/wifi-ubuntu.sh
@@ -0,0 +1,107 @@
+#!/bin/bash
+#
+# WiFi test cases for Linaro ubuntu
+#
+# Copyright (C) 2013, Linaro Limited.
+#
+# This program 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 2
+# of the License, or (at your option) any later version.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Author: Botao Sun <botao.sun@linaro.org>
+
+source include/sh-test-lib
+
+## Test case definitions
+# Check if wifi interface exists or not
+test_has_interface() {
+ TEST="has_interface"
+
+ echo "###########################################"
+ ifconfig -a
+ echo "###########################################"
+
+ wifi_interface=`ifconfig -a | grep wlan0`
+ echo "The WiFi Interface Name is $wifi_interface"
+
+ if [ -z "$wifi_interface" ]; then
+ fail_test "The WiFi interface doesn't exist, WiFi enable failed"
+ return 1
+ fi
+
+ pass_test
+}
+
+# Check if the wireless access point can be connected or not
+test_connect_to_ap() {
+ TEST="connect_to_ap"
+
+ network_config_file="/etc/network/interfaces"
+ echo $network_config_file
+
+ # Turn off Ethernet
+ mv $network_config_file $network_config_file".bak"
+ echo -ne "auto wlan0\niface wlan0 inet dhcp\nwpa-ssid $1\nwpa-psk $2" > $network_config_file
+
+ service networking restart
+
+ echo "###########################################"
+ ifconfig wlan0
+ echo "###########################################"
+
+ # Get ip address from WiFi interface
+ ip_address_line=`ifconfig wlan0 | grep "inet addr"`
+ echo $ip_address_line
+
+ ip_address_array=($ip_address_line)
+ ip_address_element=${ip_address_array[1]}
+ echo $ip_address_element
+
+ ip_address=${ip_address_element:5}
+ echo $ip_address
+
+ # Ping test here
+ ping -c 5 -I ${ip_address} www.google.com
+ if [ $? -ne 0 ]; then
+ fail_test "Ping test failed from $ip_address"
+ return 1
+ fi
+
+ # Packet loss report
+ packet_loss_line=`ping -c 5 -I ${ip_address} www.google.com | grep "packet loss"`
+ echo $packet_loss_line
+
+ packet_loss_array=($packet_loss_line)
+ packet_loss=${packet_loss_array[5]}
+ echo "The packet loss rate is $packet_loss"
+
+ if [ "$packet_loss" != "0%" ]; then
+ fail_test "Packet loss happened, rate is $packet_loss"
+ return 1
+ fi
+
+ # Restore the environment
+ rm -rf $network_config_file
+ mv $network_config_file".bak" $network_config_file
+
+ service networking restart
+ sleep 30
+
+ pass_test
+}
+
+# run the tests
+test_has_interface
+test_connect_to_ap $1 $2
+# clean exit so lava-test can trust the results
+exit 0 \ No newline at end of file