Whamcloud - gitweb
tests: use make rules to run tests in parallel
[tools/e2fsprogs.git] / tests / test_one.in
1 #!/bin/sh
2 # run a single regression test
3
4 LC_ALL=C
5 export LC_ALL
6
7 case "$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         ;;
16 esac
17
18 case "$1" in
19     *.failed|*.new|*.ok|*.log|*.tmp)    exit 0 ;;
20 esac
21
22 test_dir=$1
23 cmd_dir=$SRCDIR
24
25 if test "$TEST_CONFIG"x = x; then
26         TEST_CONFIG=$SRCDIR/test_config
27 fi
28
29 . $TEST_CONFIG
30
31 TMPFILE=$(mktemp)
32
33 test_name=`echo $test_dir | sed -e 's;.*/;;'`
34 if [ -f $test_dir ] ; then
35         exit 0;
36 fi
37 if [ ! -d $test_dir ] ; then
38         echo "The test '$test_name' does not exist."
39         exit 0;
40 fi
41 if [ -z "`ls $test_dir`" ]; then
42         exit 0
43 fi
44 if [ -f $test_dir/name ]; then
45         test_description=`cat $test_dir/name`
46 else
47         test_description=
48 fi
49
50 rm -f $test_name.ok $test_name.failed
51 #echo -e -n "$test_name: $test_description:\r"
52
53 if [ -f $test_dir/script ]; then
54         . $test_dir/script
55 else
56         test_base=`echo $test_name | sed -e 's/_.*//'`
57         default_script=$SRCDIR/defaults/${test_base}_script
58         if [ -f $default_script ]; then
59                 . $SRCDIR/defaults/${test_base}_script
60         else
61                 echo "$test_name: Missing test script $default_script!"
62         fi
63         [ -f $test_name.failed ] && cat $test_name.failed
64 fi
65
66 if [ "$SKIP_UNLINK" != "true" ] ; then
67         rm -f $TMPFILE
68 fi
69