libevent/test/test-ratelim.sh
Nick Mathewson faf2a04fa5 Make test.sh exit with nonzero status if tests fail
This behavior makes "make verify" actually fail when the tests fail,
which is what it's supposed to do.
2010-05-26 13:43:01 -04:00

78 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
FAILED=no
if test "x$TEST_OUTPUT_FILE" = "x"
then
TEST_OUTPUT_FILE=/dev/null
fi
# /bin/echo is a little more likely to support -n than sh's builtin echo.
if test -x /bin/echo
then
ECHO=/bin/echo
else
ECHO=echo
fi
if test "$TEST_OUTPUT_FILE" != "/dev/null"
then
touch "$TEST_OUTPUT_FILE" || exit 1
fi
TEST_DIR=.
T=`echo "$0" | sed -e 's/test-ratelim.sh$//'`
if test -x "$T/test-ratelim"
then
TEST_DIR="$T"
fi
announce () {
echo $@
echo $@ >>"$TEST_OUTPUT_FILE"
}
announce_n () {
$ECHO -n $@
echo $@ >>"$TEST_OUTPUT_FILE"
}
run_tests () {
announce_n " Group limits, no connection limit:"
if $TEST_DIR/test-ratelim -g 30000 -n 30 -t 100 --check-grouplimit 1000 --check-stddev 100 >>"$TEST_OUTPUT_FILE"
then
announce OKAY
else
announce FAILED
FAILED=yes
fi
announce_n " Connection limit, no group limit:"
if $TEST_DIR/test-ratelim -c 1000 -n 30 -t 100 --check-connlimit 50 --check-stddev 50 >>"$TEST_OUTPUT_FILE"
then
announce OKAY ;
else
announce FAILED ;
FAILED=yes
fi
announce_n " Connection limit and group limit:"
if $TEST_DIR/test-ratelim -c 1000 -g 30000 -n 30 -t 100 --check-grouplimit 1000 --check-connlimit 50 --check-stddev 50 >>"$TEST_OUTPUT_FILE"
then
announce OKAY ;
else
announce FAILED ;
FAILED=yes
fi
}
announce "Running rate-limiting tests:"
run_tests
if test "$FAILED" = "yes"; then
exit 1
fi