#!/bin/sh ethernet_interface="eth1" ethernet_ping_ipaddr="172.21.3.22" ethernet_ipaddr=$1 IFCONFIG=`which ifconfig` $IFCONFIG $ethernet_interface up > /dev/null 2>&1 $IFCONFIG | grep $ethernet_interface > /dev/null 2>&1 if [ $? -ne 0 ]; then echo "FAIL: $ethernet_interface is not up" exit 1 else echo "PASS: $ethernet_interface is up" fi if [ "x$ethernet_ipaddr" != "x" ]; then $IFCONFIG $ethernet_interface $ethernet_ipaddr fi $IFCONFIG $ethernet_interface |grep 'inet addr:' |sed -e 's@inet addr:@@' |sed q | awk '{print $1}' >/dev/null 2>&1 if [ $? -ne 0 ]; then echo "FAIL: setup $ethernet_interface ipaddr failed" exit 1 else echo "PASS: setup $ethernet_interface ipaddr succeeded" fi mindatasize=56 maxdatasize=650 stepsize=100 iteration=1 datasize=$mindatasize logfile=`/bin/mktemp` statistics=`/bin/mktemp` error=0 trap cleanup SIGHUP SIGINT SIGTERM clean_tasks() { rm -f $logfile $statistics } cleanup() { echo "Aborting script execution" clean_tasks exit 0 } while [ $datasize -le $maxdatasize ]; do for i in `seq 1 $iteration`; do ping -c 1 -s $datasize $ethernet_ping_ipaddr > $statistics ping_err=$? cat $statistics | grep "PING" > /dev/null 2>&1 cat $statistics | grep "received" > /dev/null 2>&1 [ `echo $?` -eq 0 ] || packets_received=0 && \ packets_received=`cat $statistics | \ grep "received" | awk '{print$4}'` # Evaluate possible errors on the ping operation if [ $ping_err -ne 0 ] || [ $packets_received -eq 0 ]; then error=1 echo -e `cat $statistics | grep PING` >> $logfile 2>/dev/null fi done let datasize=$datasize+$stepsize done # Report failures if [ $error -eq 1 ]; then echo "=================== error report ===================" cat $logfile echo "====================================================" clean_tasks echo -e "FAIL: $ethernet_interface test failed\n" exit 1 else clean_tasks echo -e "PASS: $ethernet_interface test passed" fi exit 0