diff options
Diffstat (limited to 'test/functional/tests.sh')
-rw-r--r-- | test/functional/tests.sh | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/test/functional/tests.sh b/test/functional/tests.sh new file mode 100644 index 000000000..d6eb612a6 --- /dev/null +++ b/test/functional/tests.sh @@ -0,0 +1,62 @@ +#!/bin/sh + +TMPDIR= +RSPAMD_PID= +TEST_DIRNAME=`cd $(dirname $0) ; pwd` +TEST_NAME='top' +TEST_DESCRIPTION='no description' +FAILED_TESTS=0 +SUCCESSFUL_TESTS=0 +SKIPPED_TESTS=0 + +. ${TEST_DIRNAME}/functions.sh + +function make_tempdir() +{ + export TMPDIR=`mktemp -d /tmp/rspamd-test-XXXXXX` +} + +function run_test() +{ + TEST_NAME=`basename $1 | sed -e 's/.sh$//'` + TEST_DESCRIPTION=`head -1 $1 | sed -e 's/^# *//'` + + printf '%s: ' "${TEST_DESCRIPTION}" + + egrep '^skip$' $1 + if [ $? -eq 0 ] ; then + SKIPPED_TESTS=$(($SKIPPED_TESTS + 1)) + echo "SKIP" + return 0 + fi + + make_tempdir + export TEST_NAME TMPDIR TEST_DESCRIPTION TEST_DIRNAME + sh "$1" + + if [ $? -ne 0 ] ; then + FAILED_TESTS=$(($FAILED_TESTS + 1)) + echo "FAIL" + else + SUCCESSFUL_TESTS=$(($SUCCESSFUL_TESTS + 1)) + if [ -d /tmp/rspamd-failed-tests/${TEST_NAME} ] ; then + rm -fr /tmp/rspamd-failed-tests/${TEST_NAME} + fi + echo "OK" + fi + + teardown +} + +if [ $# -ne 0 ] ; then + for _test in $@ ; do + run_test $_test + done +else + for _test in ${TEST_DIRNAME}/cases/*.sh ; do + run_test $_test + done + +fi + +echo "Successful tests: $SUCCESSFUL_TESTS; failed tests: $FAILED_TESTS, skipped tests: $SKIPPED_TESTS"
\ No newline at end of file |