diff options
Diffstat (limited to 'tests/test_one.in')
-rw-r--r-- | tests/test_one.in | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/test_one.in b/tests/test_one.in new file mode 100644 index 00000000..d053fd71 --- /dev/null +++ b/tests/test_one.in @@ -0,0 +1,69 @@ +#!/bin/sh +# run a single regression test + +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 + +case "$1" in + *.failed|*.new|*.ok|*.log|*.tmp) exit 0 ;; +esac + +test_dir=$1 +cmd_dir=$SRCDIR + +if test "$TEST_CONFIG"x = x; then + TEST_CONFIG=$SRCDIR/test_config +fi + +. $TEST_CONFIG + +TMPFILE=$(mktemp -t e2fsprogs-tmp.XXXXXX) + +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 + +rm -f $test_name.ok $test_name.failed +#echo -e -n "$test_name: $test_description:\r" + +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 + [ -f $test_name.failed ] && cat $test_name.failed +fi + +if [ "$SKIP_UNLINK" != "true" ] ; then + rm -f $TMPFILE +fi + |