bstinson / centos / t_functional

Forked from centos/t_functional 4 years ago
Clone
Blob Blame History Raw
#!/bin/sh
# Author: Christoph Galuschka <christoph.galuschka@chello.at>

TEST=traceroute

# Testing availability of network
if [ $SKIP_QA_HARNESS -eq 1 ]; then
  HOST="wiki.centos.org"
else
  HOST="repo.centos.qa"
fi

t_Log "Running $0 - running ${TEST} to ${HOST}"

IP=$(host ${HOST})
FILE=/var/tmp/traceroute_result
ret_val=1

regex='.*address\ ([0-9.]*)'
if [[ $IP =~ $regex ]]
then
  traceroute -n ${HOST} > ${FILE}
  COUNT=$(grep -c ${BASH_REMATCH[1]} ${FILE})
  TTL=$(egrep -c '30  \* \* \*' ${FILE})
  if [ $COUNT = 2 ]
  then
    t_Log "${TEST} reached ${HOST}"
    ret_val=0
  elif ([ $COUNT != 2 ] && [ $TTL = 1 ])
    then
    t_Log "${TEST} didn't reach ${HOST} because of too many hops/blocked traceroute by ISP. This is treated as SUCCESS."
    ret_val=0
  else
    t_Log "${TEST} didn't return anything we expect - FAILING"
   ret_val=1
  fi
fi

/bin/rm ${FILE}
t_CheckExitStatus $ret_val