blob: 276f1da4299deb8940f9be2a74c834e91d0f981a [file] [log] [blame] [edit]
#!/system/bin/sh
#
# Ethernet test cases for Linaro Android
#
# Copyright (C) 2010 - 2014, 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>
check_return_fail() {
if [ $? -ne 0 ]; then
fail_test "$1"
return 0
else
return 1
fi
}
fail_test() {
local reason=$1
echo "${TEST}: FAIL - ${reason}"
}
pass_test() {
echo "${TEST}: PASS"
}
## Test case definitions
# Check Ethernet can be disabled or not
test_disable_ethernet() {
TEST="disable_ethernet"
echo `which busybox`
busybox ifconfig eth0 down
if [ $? -ne 0 ]; then
fail_test "Ethernet disable failed"
return 1
fi
sleep 20
echo "###########################################"
busybox ifconfig -a
echo "###########################################"
busybox ifconfig eth0 | grep "inet addr"
if [ $? -ne 1 ]; then
fail_test "Ethernet IP address still exists"
return 1
fi
pass_test
}
# Check Ethernet can be enabled or not
test_enable_ethernet() {
TEST="enable_ethernet"
echo `which busybox`
busybox ifconfig eth0 up
if [ $? -ne 0 ]; then
fail_test "Ethernet enable failed"
return 1
fi
sleep 20
echo "###########################################"
busybox ifconfig -a
echo "###########################################"
busybox ifconfig eth0 | grep "inet addr"
if [ $? -ne 0 ]; then
fail_test "Ethernet IP not found"
return 1
fi
pass_test
}
# Ethernet ping test
test_ethernet_ping() {
TEST="ethernet_ping"
echo `which busybox`
busybox ifconfig eth0 up
sleep 20
echo "###########################################"
busybox ifconfig -a
echo "###########################################"
busybox ifconfig eth0 | grep "inet addr"
if [ $? -ne 0 ]; then
fail_test "Ethernet IP not found"
return 1
fi
# Get ip address from Ethernet interface
ip_address_line=`busybox ifconfig eth0 | grep "inet addr"`
echo $ip_address_line
ip_address_element=$(echo $ip_address_line | awk '{print $2}')
echo $ip_address_element
ip_address=$(echo $ip_address_element | awk -F: '{print $2}')
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=$(echo $packet_loss_line | awk '{print $6}')
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
pass_test
}
# run the tests
test_disable_ethernet
test_enable_ethernet
test_ethernet_ping
# clean exit so lava-test can trust the results
exit 0