1 2export DEST="127.0.0.1" 3 4ts_log() 5{ 6 echo "$@" 7} 8 9ts_err() 10{ 11 ts_log "$@" | tee >> $ERRF 12} 13 14ts_cat() 15{ 16 cat "$@" 17} 18 19ts_err_cat() 20{ 21 ts_cat "$@" | tee >> $ERRF 22} 23 24ts_skip() 25{ 26 exit 127 27} 28 29ts_tc() 30{ 31 SCRIPT=$1; shift 32 DESC=$1; shift 33 34 $TC $@ 2> $STD_ERR > $STD_OUT 35 36 if [ -s $STD_ERR ]; then 37 ts_err "${SCRIPT}: ${DESC} failed:" 38 ts_err "command: $TC $@" 39 ts_err "stderr output:" 40 ts_err_cat $STD_ERR 41 if [ -s $STD_OUT ]; then 42 ts_err "stdout output:" 43 ts_err_cat $STD_OUT 44 fi 45 elif [ -s $STD_OUT ]; then 46 echo "${SCRIPT}: ${DESC} succeeded with output:" 47 cat $STD_OUT 48 else 49 echo "${SCRIPT}: ${DESC} succeeded" 50 fi 51} 52 53ts_ip() 54{ 55 SCRIPT=$1; shift 56 DESC=$1; shift 57 58 $IP $@ 2> $STD_ERR > $STD_OUT 59 RET=$? 60 61 if [ -s $STD_ERR ] || [ "$RET" != "0" ]; then 62 ts_err "${SCRIPT}: ${DESC} failed:" 63 ts_err "command: $IP $@" 64 ts_err "stderr output:" 65 ts_err_cat $STD_ERR 66 if [ -s $STD_OUT ]; then 67 ts_err "stdout output:" 68 ts_err_cat $STD_OUT 69 fi 70 elif [ -s $STD_OUT ]; then 71 echo "${SCRIPT}: ${DESC} succeeded with output:" 72 cat $STD_OUT 73 else 74 echo "${SCRIPT}: ${DESC} succeeded" 75 fi 76} 77 78ts_qdisc_available() 79{ 80 HELPOUT=`$TC qdisc add $1 help 2>&1` 81 if [ "`echo $HELPOUT | grep \"^Unknown qdisc\"`" ]; then 82 return 0; 83 else 84 return 1; 85 fi 86} 87 88rand_dev() 89{ 90 echo "dev-$(tr -dc "[:alpha:]" < /dev/urandom | head -c 6)" 91} 92 93pr_failed() 94{ 95 echo " [FAILED]" 96 ts_err "matching failed" 97} 98 99pr_success() 100{ 101 echo " [SUCCESS]" 102} 103 104test_on() 105{ 106 echo -n "test on: \"$1\"" 107 if cat "$STD_OUT" | grep -qE "$1" 108 then 109 pr_success 110 else 111 pr_failed 112 fi 113} 114 115test_on_not() 116{ 117 echo -n "test on: \"$1\"" 118 if cat "$STD_OUT" | grep -vqE "$1" 119 then 120 pr_success 121 else 122 pr_failed 123 fi 124} 125 126test_lines_count() 127{ 128 echo -n "test on lines count ($1): " 129 if cat "$STD_OUT" | wc -l | grep -q "$1" 130 then 131 pr_success 132 else 133 pr_failed 134 fi 135} 136