1#!/bin/sh
2# run a single regression test
3
4LC_ALL=C
5export LC_ALL
6
7case "$1" in
8    --valgrind)
9    	export USE_VALGRIND="valgrind -q --sim-hints=lax-ioctls"
10	shift;
11	;;
12    --valgrind-leakcheck)
13    	export USE_VALGRIND="valgrind --sim-hints=lax-ioctls --leak-check=full --show-reachable=yes --log-file=/tmp/valgrind-%p.log"
14	shift;
15	;;
16esac
17
18case "$1" in
19    *.failed|*.new|*.ok|*.log|*.tmp)	exit 0 ;;
20esac
21
22test_dir=$1
23cmd_dir=$SRCDIR
24
25if test "$TEST_CONFIG"x = x; then
26	TEST_CONFIG=$SRCDIR/test_config
27fi
28
29. $TEST_CONFIG
30
31test_name=`echo $test_dir | sed -e 's;.*/;;'`
32
33TMPFILE=$(mktemp ${TMPDIR:-/tmp}/e2fsprogs-tmp-$test_name.XXXXXX)
34trap 'rm -f $TMPFILE ; exit' 1 2 15
35
36if [ -f $test_dir ] ; then
37	exit 0;
38fi
39if [ ! -d $test_dir ] ; then
40	echo "The test '$test_name' does not exist."
41	exit 0;
42fi
43if [ -z "`ls $test_dir`" ]; then
44	exit 0
45fi
46if [ -f $test_dir/name ]; then
47	test_description=`cat $test_dir/name`
48else
49	test_description=
50fi
51
52rm -f $test_name.ok $test_name.failed
53#echo -e -n "$test_name: $test_description:\r"
54
55if [ -f $test_dir/script ]; then
56	. $test_dir/script
57else
58	test_base=`echo $test_name | sed -e 's/_.*//'`
59	default_script=$SRCDIR/defaults/${test_base}_script
60	if [ -f $default_script ]; then
61		. $SRCDIR/defaults/${test_base}_script
62	else
63		echo "$test_name: Missing test script $default_script!"
64	fi
65fi
66
67if [ "$SKIP_UNLINK" != "true" ] ; then
68	rm -f $TMPFILE
69fi
70
71