]> git.kernelconcepts.de Git - karo-tx-redboot.git/blob - packages/net/autotest/v2_0/host/slowping.sh
Initial revision
[karo-tx-redboot.git] / packages / net / autotest / v2_0 / host / slowping.sh
1 #!/bin/sh
2
3 if [ $# -lt 1 ]; then
4     echo "Usage: $0 [XFAIL] target [timeout [size]]" > /dev/stderr
5     exit 1
6 fi
7
8 [ "xXFAIL" == "x$1" ] && { XFAIL="XFAIL"; shift; }
9 TARGET=$1
10 if [ "x" == "x$2" ]; then TIMEOUT=10;   else TIMEOUT=$2; fi
11 if [ "x" == "x$3" ]; then PINGSIZE=64;  else PINGSIZE=$3; fi
12
13 if [ "x$XFAIL" != "xXFAIL" ]; then
14     # first try normal size packets
15     if ping -n -c 5 $TARGET > /dev/null ; then
16         echo "INFO:<$$: $TARGET is up>" > /dev/stderr
17     else
18         echo "FAIL:<$$: $TARGET is down>" > /dev/stderr; exit 1
19     fi
20 fi
21
22 # then the size we were asked to do, for the time requested
23 ping -n -c $TIMEOUT -s $PINGSIZE $TARGET > /tmp/ping$$ && PINGRESULT=ok
24
25 # dump this out for the controller logfile
26 cat /tmp/ping$$
27
28 INFO1=$(grep "bytes of data" /tmp/ping$$)
29 INFO2=$(grep "packet loss" /tmp/ping$$)
30 INFO3=$(grep "round-trip" /tmp/ping$$)
31
32 rm -f /tmp/ping$$
33
34 [ "x" != "x$INFO1" ] && echo "INFO:<$$: $INFO1>" > /dev/stderr
35 [ "x" != "x$INFO2" ] && echo "INFO:<$$: $INFO2>" > /dev/stderr
36 [ "x" != "x$INFO3" ] && echo "INFO:<$$: $INFO3>" > /dev/stderr
37
38 if [ "x$XFAIL" == "xXFAIL" ]; then
39     echo "PASS:<$$: slow ping XFAIL, $PINGSIZE bytes $TIMEOUT packets/seconds>" > /dev/stderr
40     exit 0
41 fi
42
43 if [ "x" == "x$PINGRESULT" ]; then
44     echo "FAIL:<$$: slow ping failed, $PINGSIZE bytes $TIMEOUT packets/seconds>" > /dev/stderr
45     exit 1
46 fi
47
48 echo "PASS:<$$: slow ping OK, $PINGSIZE bytes $TIMEOUT packets/seconds>" > /dev/stderr
49
50 # EOF