diff options
Diffstat (limited to 'run-tests.sh')
-rwxr-xr-x | run-tests.sh | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/run-tests.sh b/run-tests.sh index d6de6c6c31a..32b6e8e1d0b 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -186,11 +186,55 @@ function run_tests() return ${RES} } +# If you're submitting a fix related to one of these tests and want its result +# to be considered, you'll need to remove it from the list as part of your +# patch. +function is_bad_test () +{ + local name=$1 + for bt in ./tests/basic/volume-snapshot-clone.t \ + ./tests/basic/uss.t \ + ./tests/features/glupy.t; do + [ x"$name" = x"$bt" ] && return 0 # bash: zero means true/success + done + return 1 # bash: non-zero means false/failure +} + +function run_all () +{ + find ${regression_testsdir}/tests -name '*.t' \ + | LC_COLLATE=C sort \ + | while read t; do + old_cores=$(ls /core.* 2> /dev/null | wc -l) + retval=0 + prove -f --timer $t + TMP_RES=$? + if [ ${TMP_RES} -ne 0 ] ; then + echo "$t: bad status $TMP_RES" + retval=$((retval+1)) + fi + new_cores=$(ls /core.* 2> /dev/null | wc -l) + if [ x"$new_cores" != x"$old_cores" ]; then + core_diff=$((new_cores-old_cores)) + echo "$t: $core_diff new core files" + retval=$((retval+2)) + fi + if [ $retval -ne 0 ]; then + if is_bad_test $t; then + echo "Ignoring failure from known-bad test $t" + else + return $retval + fi + fi + done +} + function main() { if [ $# -lt 1 ]; then - echo "Running all the regression test cases" - prove -rf --timer ${regression_testsdir}/tests; + echo "Running all the regression test cases (new way)" + #prove -rf --timer ${regression_testsdir}/tests; + run_all else run_tests "$@" fi |