export DEST="127.0.0.1"
ts_log()
{
echo "$@"
}
ts_err()
{
ts_log "$@" | tee >> $ERRF
}
ts_cat()
{
cat "$@"
}
ts_err_cat()
{
ts_cat "$@" | tee >> $ERRF
}
ts_skip()
{
exit 127
}
ts_tc()
{
SCRIPT=$1; shift
DESC=$1; shift
$TC $@ 2> $STD_ERR > $STD_OUT
if [ -s $STD_ERR ]; then
ts_err "${SCRIPT}: ${DESC} failed:"
ts_err "command: $TC $@"
ts_err "stderr output:"
ts_err_cat $STD_ERR
if [ -s $STD_OUT ]; then
ts_err "stdout output:"
ts_err_cat $STD_OUT
fi
elif [ -s $STD_OUT ]; then
echo "${SCRIPT}: ${DESC} succeeded with output:"
cat $STD_OUT
else
echo "${SCRIPT}: ${DESC} succeeded"
fi
}
ts_ip()
{
SCRIPT=$1; shift
DESC=$1; shift
$IP $@ 2> $STD_ERR > $STD_OUT
RET=$?
if [ -s $STD_ERR ] || [ "$RET" != "0" ]; then
ts_err "${SCRIPT}: ${DESC} failed:"
ts_err "command: $IP $@"
ts_err "stderr output:"
ts_err_cat $STD_ERR
if [ -s $STD_OUT ]; then
ts_err "stdout output:"
ts_err_cat $STD_OUT
fi
elif [ -s $STD_OUT ]; then
echo "${SCRIPT}: ${DESC} succeeded with output:"
cat $STD_OUT
else
echo "${SCRIPT}: ${DESC} succeeded"
fi
}
ts_qdisc_available()
{
HELPOUT=`$TC qdisc add $1 help 2>&1`
if [ "`echo $HELPOUT | grep \"^Unknown qdisc\"`" ]; then
return 0;
else
return 1;
fi
}
rand_dev()
{
echo "dev-$(tr -dc "[:alpha:]" < /dev/urandom | head -c 6)"
}
pr_failed()
{
echo " [FAILED]"
ts_err "matching failed"
}
pr_success()
{
echo " [SUCCESS]"
}
test_on()
{
echo -n "test on: \"$1\""
if cat "$STD_OUT" | grep -qE "$1"
then
pr_success
else
pr_failed
fi
}
test_on_not()
{
echo -n "test on: \"$1\""
if cat "$STD_OUT" | grep -vqE "$1"
then
pr_success
else
pr_failed
fi
}
test_lines_count()
{
echo -n "test on lines count ($1): "
if cat "$STD_OUT" | wc -l | grep -q "$1"
then
pr_success
else
pr_failed
fi
}