1c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 2c515871c8a72950cc5ff08d250ba7209ab95b581shemmingerexport DEST="127.0.0.1" 3c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 4c515871c8a72950cc5ff08d250ba7209ab95b581shemmingerts_log() 5c515871c8a72950cc5ff08d250ba7209ab95b581shemminger{ 6c515871c8a72950cc5ff08d250ba7209ab95b581shemminger echo "$@" 7c515871c8a72950cc5ff08d250ba7209ab95b581shemminger} 8c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 9c515871c8a72950cc5ff08d250ba7209ab95b581shemmingerts_err() 10c515871c8a72950cc5ff08d250ba7209ab95b581shemminger{ 11c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_log "$@" | tee >> $ERRF 12c515871c8a72950cc5ff08d250ba7209ab95b581shemminger} 13c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 14c515871c8a72950cc5ff08d250ba7209ab95b581shemmingerts_cat() 15c515871c8a72950cc5ff08d250ba7209ab95b581shemminger{ 16c515871c8a72950cc5ff08d250ba7209ab95b581shemminger cat "$@" 17c515871c8a72950cc5ff08d250ba7209ab95b581shemminger} 18c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 19c515871c8a72950cc5ff08d250ba7209ab95b581shemmingerts_err_cat() 20c515871c8a72950cc5ff08d250ba7209ab95b581shemminger{ 21c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_cat "$@" | tee >> $ERRF 22c515871c8a72950cc5ff08d250ba7209ab95b581shemminger} 23c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 248d391512b72d2b8cd9d4f06b0b064794bd55ad6evadimkts_skip() 258d391512b72d2b8cd9d4f06b0b064794bd55ad6evadimk{ 268d391512b72d2b8cd9d4f06b0b064794bd55ad6evadimk exit 127 278d391512b72d2b8cd9d4f06b0b064794bd55ad6evadimk} 288d391512b72d2b8cd9d4f06b0b064794bd55ad6evadimk 29c515871c8a72950cc5ff08d250ba7209ab95b581shemmingerts_tc() 30c515871c8a72950cc5ff08d250ba7209ab95b581shemminger{ 31c515871c8a72950cc5ff08d250ba7209ab95b581shemminger SCRIPT=$1; shift 32c515871c8a72950cc5ff08d250ba7209ab95b581shemminger DESC=$1; shift 33c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 3430383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan $TC $@ 2> $STD_ERR > $STD_OUT 35c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 3630383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan if [ -s $STD_ERR ]; then 37c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_err "${SCRIPT}: ${DESC} failed:" 38c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_err "command: $TC $@" 39c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_err "stderr output:" 4030383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan ts_err_cat $STD_ERR 4130383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan if [ -s $STD_OUT ]; then 42c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_err "stdout output:" 4330383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan ts_err_cat $STD_OUT 44c515871c8a72950cc5ff08d250ba7209ab95b581shemminger fi 4530383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan elif [ -s $STD_OUT ]; then 46c515871c8a72950cc5ff08d250ba7209ab95b581shemminger echo "${SCRIPT}: ${DESC} succeeded with output:" 4730383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan cat $STD_OUT 48c515871c8a72950cc5ff08d250ba7209ab95b581shemminger else 49c515871c8a72950cc5ff08d250ba7209ab95b581shemminger echo "${SCRIPT}: ${DESC} succeeded" 50c515871c8a72950cc5ff08d250ba7209ab95b581shemminger fi 51c515871c8a72950cc5ff08d250ba7209ab95b581shemminger} 52c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 53c515871c8a72950cc5ff08d250ba7209ab95b581shemmingerts_ip() 54c515871c8a72950cc5ff08d250ba7209ab95b581shemminger{ 55c515871c8a72950cc5ff08d250ba7209ab95b581shemminger SCRIPT=$1; shift 56c515871c8a72950cc5ff08d250ba7209ab95b581shemminger DESC=$1; shift 57c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 5830383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan $IP $@ 2> $STD_ERR > $STD_OUT 594cec9db0b4085c1b2e8072bac2d07843a9285ac1Vadim Kochan RET=$? 60c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 6130383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan if [ -s $STD_ERR ] || [ "$RET" != "0" ]; then 62c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_err "${SCRIPT}: ${DESC} failed:" 63c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_err "command: $IP $@" 64c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_err "stderr output:" 6530383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan ts_err_cat $STD_ERR 6630383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan if [ -s $STD_OUT ]; then 67c515871c8a72950cc5ff08d250ba7209ab95b581shemminger ts_err "stdout output:" 6830383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan ts_err_cat $STD_OUT 69c515871c8a72950cc5ff08d250ba7209ab95b581shemminger fi 7030383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan elif [ -s $STD_OUT ]; then 71c515871c8a72950cc5ff08d250ba7209ab95b581shemminger echo "${SCRIPT}: ${DESC} succeeded with output:" 7230383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan cat $STD_OUT 73c515871c8a72950cc5ff08d250ba7209ab95b581shemminger else 74c515871c8a72950cc5ff08d250ba7209ab95b581shemminger echo "${SCRIPT}: ${DESC} succeeded" 75c515871c8a72950cc5ff08d250ba7209ab95b581shemminger fi 76c515871c8a72950cc5ff08d250ba7209ab95b581shemminger} 77c515871c8a72950cc5ff08d250ba7209ab95b581shemminger 78c515871c8a72950cc5ff08d250ba7209ab95b581shemmingerts_qdisc_available() 79c515871c8a72950cc5ff08d250ba7209ab95b581shemminger{ 80c515871c8a72950cc5ff08d250ba7209ab95b581shemminger HELPOUT=`$TC qdisc add $1 help 2>&1` 81c515871c8a72950cc5ff08d250ba7209ab95b581shemminger if [ "`echo $HELPOUT | grep \"^Unknown qdisc\"`" ]; then 82c515871c8a72950cc5ff08d250ba7209ab95b581shemminger return 0; 83c515871c8a72950cc5ff08d250ba7209ab95b581shemminger else 84c515871c8a72950cc5ff08d250ba7209ab95b581shemminger return 1; 85c515871c8a72950cc5ff08d250ba7209ab95b581shemminger fi 86c515871c8a72950cc5ff08d250ba7209ab95b581shemminger} 874cec9db0b4085c1b2e8072bac2d07843a9285ac1Vadim Kochan 884cec9db0b4085c1b2e8072bac2d07843a9285ac1Vadim Kochanrand_dev() 894cec9db0b4085c1b2e8072bac2d07843a9285ac1Vadim Kochan{ 904cec9db0b4085c1b2e8072bac2d07843a9285ac1Vadim Kochan echo "dev-$(tr -dc "[:alpha:]" < /dev/urandom | head -c 6)" 914cec9db0b4085c1b2e8072bac2d07843a9285ac1Vadim Kochan} 9230383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan 9330383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochanpr_failed() 9430383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan{ 9530383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan echo " [FAILED]" 9630383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan ts_err "matching failed" 9730383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan} 9830383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan 9930383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochanpr_success() 10030383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan{ 10130383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan echo " [SUCCESS]" 10230383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan} 10330383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan 10430383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochantest_on() 10530383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan{ 10630383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan echo -n "test on: \"$1\"" 10730383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan if cat "$STD_OUT" | grep -qE "$1" 10830383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan then 10930383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan pr_success 11030383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan else 11130383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan pr_failed 11230383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan fi 11330383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan} 11430383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan 11530383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochantest_on_not() 11630383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan{ 11730383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan echo -n "test on: \"$1\"" 11830383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan if cat "$STD_OUT" | grep -vqE "$1" 11930383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan then 12030383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan pr_success 12130383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan else 12230383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan pr_failed 12330383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan fi 12430383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan} 12530383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan 12630383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochantest_lines_count() 12730383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan{ 12830383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan echo -n "test on lines count ($1): " 12930383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan if cat "$STD_OUT" | wc -l | grep -q "$1" 13030383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan then 13130383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan pr_success 13230383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan else 13330383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan pr_failed 13430383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan fi 13530383b074de101c778bc65c36e2b0d4690d3d6dcVadim Kochan} 136