blob: aac28fb633d16cbaa2f8464e118c62cb5330a0e3 [file] [log] [blame]
#!/bin/sh
#
# Test script for e2fsck
#
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;
;;
esac
if test "$1"x = x ; then
TESTS=`ls -d $SRCDIR/[a-zA-Z]_* | $EGREP -v "\.failed|\.new"`
else
TESTS=
for i
do
case $i in
*.failed|*.new) continue ;;
[a-zA-Z]) TESTS="$TESTS $SRCDIR/${i}_*" ;;
*) TESTS="$TESTS $SRCDIR/$i" ;;
esac
done
fi
cmd_dir=$SRCDIR
if test "$TEST_CONFIG"x = x; then
TEST_CONFIG=$SRCDIR/test_config
fi
. $TEST_CONFIG
for test_dir in $TESTS
do
test_name=`echo $test_dir | sed -e 's;.*/;;'`
if [ -f $test_dir ] ; then
continue;
fi
if [ ! -d $test_dir ] ; then
echo "The test '$test_name' does not exist."
continue;
fi
if [ -z "`ls $test_dir`" ]; then
continue
fi
if [ -f $test_dir/name ]; then
test_description=`cat $test_dir/name`
printf "%s: %s: " "$test_name" "$test_description"
else
printf "%s: " "$test_name"
fi
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 "Missing test script!"
fi
fi
done
num_ok=`ls *.ok 2>/dev/null | wc -l`
num_failed=`ls *.failed 2>/dev/null | wc -l`
echo "$num_ok tests succeeded $num_failed tests failed"
test "$num_failed" -eq 0 || exit 1