93 lines
2.0 KiB
Bash
93 lines
2.0 KiB
Bash
#!/bin/sh
|
|
# run a single regression test
|
|
|
|
export DD
|
|
|
|
LC_ALL=C
|
|
export LC_ALL
|
|
|
|
case "$1" in
|
|
--valgrind)
|
|
export USE_VALGRIND="valgrind -q --sim-hints=lax-ioctls"
|
|
shift;
|
|
;;
|
|
--valgrind-leakcheck)
|
|
export USE_VALGRIND="valgrind --sim-hints=lax-ioctls --leak-check=full --show-reachable=yes --log-file=/tmp/valgrind-%p.log"
|
|
shift;
|
|
;;
|
|
--skip-slow-tests)
|
|
SKIP_SLOW_TESTS=yes
|
|
shift;
|
|
;;
|
|
esac
|
|
|
|
case "$1" in
|
|
*.failed|*.new|*.ok|*.log|*.tmp|*.slow) exit 0 ;;
|
|
esac
|
|
|
|
test_dir=$1
|
|
cmd_dir=$SRCDIR
|
|
|
|
if test "$TEST_CONFIG"x = x; then
|
|
TEST_CONFIG=$SRCDIR/test_config
|
|
fi
|
|
|
|
. $TEST_CONFIG
|
|
|
|
test_name=`echo $test_dir | sed -e 's;.*/;;'`
|
|
|
|
if [ -f $test_dir ] ; then
|
|
exit 0;
|
|
fi
|
|
if [ ! -d $test_dir ] ; then
|
|
echo "The test '$test_name' does not exist."
|
|
exit 0;
|
|
fi
|
|
if [ -z "`ls $test_dir`" ]; then
|
|
exit 0
|
|
fi
|
|
if [ -f $test_dir/name ]; then
|
|
test_description=`cat $test_dir/name`
|
|
else
|
|
test_description=
|
|
fi
|
|
|
|
if [ -n "$SKIP_SLOW_TESTS" -a -f $test_dir/is_slow_test ]; then
|
|
echo "$test_name: $test_description: skipped (slow test)"
|
|
exit 0
|
|
fi
|
|
|
|
rm -f $test_name.ok $test_name.failed $test_name.log $test_name.slow
|
|
#echo -e -n "$test_name: $test_description:\r"
|
|
|
|
TMPFILE=$(mktemp ${TMPDIR:-/tmp}/e2fsprogs-tmp-$test_name.XXXXXX)
|
|
[ "$SKIP_UNLINK" != "true" ] && trap 'rm -f $TMPFILE ; exit' 0 1 2 15
|
|
|
|
start=$SECONDS
|
|
if [ -f $test_dir/script ]; then
|
|
. $test_dir/script
|
|
else
|
|
test_base=`echo $test_name | sed -e 's/_.*//'`
|
|
default_script=$SRCDIR/defaults/${test_base}_script
|
|
if [ -f $default_script ]; then
|
|
. $SRCDIR/defaults/${test_base}_script
|
|
else
|
|
echo "$test_name: Missing test script $default_script!"
|
|
fi
|
|
fi
|
|
elapsed=$((SECONDS - start))
|
|
if [ $elapsed -gt 60 -a ! -f $test_dir/is_slow_test ]; then
|
|
echo "$test_name: *** took $elapsed seconds to finish ***" |
|
|
tee $test_name.slow
|
|
echo "$test_name: consider adding $test_dir/is_slow_test"
|
|
fi
|
|
|
|
if [ -n "$PRINT_FAILED" -a -f $test_name.failed ] ; then
|
|
cat $test_name.failed
|
|
fi
|
|
|
|
if [ "$SKIP_UNLINK" != "true" ] ; then
|
|
rm -f $TMPFILE
|
|
fi
|
|
|