bstinson / centos / t_functional

Forked from centos/t_functional 4 years ago
Clone

Blame tests/p_traceroute/traceroute_test.sh

Christoph Galuschka 08145a
#!/bin/sh
Christoph Galuschka 08145a
# Author: Christoph Galuschka <christoph.galuschka@chello.at>
Christoph Galuschka 08145a
Christoph Galuschka 722da5
TEST=traceroute
Christoph Galuschka 08145a
Christoph Galuschka 372989
# Testing availability of network
Christoph Galuschka 372989
if [ $SKIP_QA_HARNESS -eq 1 ]; then
Christoph Galuschka 67e17b
  HOST="wiki.centos.org"
Christoph Galuschka 372989
else
Christoph Galuschka 372989
  HOST="repo.centos.qa"
Christoph Galuschka 372989
fi
Christoph Galuschka 372989
Christoph Galuschka 67e17b
t_Log "Running $0 - running ${TEST} to ${HOST}"
Christoph Galuschka 372989
Christoph Galuschka 67e17b
IP=$(host ${HOST})
Christoph Galuschka 6eff64
FILE=/var/tmp/traceroute_result
Christoph Galuschka 6eff64
ret_val=1
Christoph Galuschka 67e17b
Christoph Galuschka 67e17b
regex='.*address\ ([0-9.]*)'
Christoph Galuschka 8e8c03
if [[ $IP =~ $regex ]]
Christoph Galuschka 372989
then
Christoph Galuschka 6eff64
  traceroute -n ${HOST} > ${FILE}
Christoph Galuschka 6eff64
  COUNT=$(grep -c ${BASH_REMATCH[1]} ${FILE})
Christoph Galuschka 6eff64
  TTL=$(egrep -c '30  \* \* \*' ${FILE})
Christoph Galuschka 67e17b
  if [ $COUNT = 2 ]
Christoph Galuschka 8e8c03
  then
Christoph Galuschka 67e17b
    t_Log "${TEST} reached ${HOST}"
Christoph Galuschka 67e17b
    ret_val=0
Christoph Galuschka 6eff64
  elif ([ $COUNT != 2 ] && [ $TTL = 1 ])
Christoph Galuschka 6eff64
    then
Christoph Galuschka 6eff64
    t_Log "${TEST} didn't reach ${HOST} because of too many hops/blocked traceroute by ISP. This is treated as SUCCESS."
Christoph Galuschka 6eff64
    ret_val=0
Christoph Galuschka 67e17b
  else
Christoph Galuschka 6eff64
    t_Log "${TEST} didn't return anything we expect - FAILING"
Christoph Galuschka 6eff64
   ret_val=1
Christoph Galuschka 08145a
  fi
Christoph Galuschka 08145a
fi
Christoph Galuschka 08145a
Christoph Galuschka 6eff64
/bin/rm ${FILE}
Christoph Galuschka dea7b2
t_CheckExitStatus $ret_val