summaryrefslogtreecommitdiff
path: root/tests/test_one.in
blob: d053fd71e90e07ca6ba2a935d7d724b68f96af37 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
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