diff options
author | Botao Sun <botao.sun@linaro.org> | 2014-01-28 20:13:05 +1100 |
---|---|---|
committer | Botao Sun <botao.sun@linaro.org> | 2014-01-29 20:22:25 +1100 |
commit | e7951d1a57724a4b98806a4f1bb284a6e340c5bf (patch) | |
tree | a2ddd67fda020cb7ac013db4aaef9762d634a890 | |
parent | b06cf068652650a9e84a4a842f395ac2ab1d7b7a (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
-rwxr-xr-x | ubuntu/scripts/wifi-ubuntu.sh | 107 | ||||
-rw-r--r-- | ubuntu/wifi-ubuntu.yaml | 24 |
2 files changed, 131 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 diff --git a/ubuntu/wifi-ubuntu.yaml b/ubuntu/wifi-ubuntu.yaml new file mode 100644 index 0000000..60c7bee --- /dev/null +++ b/ubuntu/wifi-ubuntu.yaml @@ -0,0 +1,24 @@ +metadata: + name: wifi-ubuntu + format: "Lava-Test-Shell Test Definition 1.0" + description: "Test WiFi on Linux Linaro ubuntu. SSID and PASSWORD are possible to be set in JSON." + maintainer: + - botao.sun@linaro.org + os: + - ubuntu + devices: + - panda-es + environment: + - lava-test-shell +params: + SSID: LAVA-WiFi-G + PASSWORD: DoubleSuezBun +run: + steps: + - "cd ubuntu/scripts; ./wifi-ubuntu.sh $SSID $PASSWORD" + +parse: + pattern: "(?P<test_case_id>[a-zA-Z0-9_-]+):\\s(?P<result>\\w+)" + fixupdict: + FAIL: fail + PASS: pass
\ No newline at end of file |