]>
Commit | Line | Data |
---|---|---|
f3331df6 AD |
1 | #!/bin/sh |
2 | # run a single regression test | |
3 | ||
ec3a69bb MA |
4 | export DD |
5 | ||
f3331df6 AD |
6 | LC_ALL=C |
7 | export LC_ALL | |
8 | ||
9 | case "$1" in | |
10 | --valgrind) | |
11 | export USE_VALGRIND="valgrind -q --sim-hints=lax-ioctls" | |
12 | shift; | |
13 | ;; | |
14 | --valgrind-leakcheck) | |
15 | export USE_VALGRIND="valgrind --sim-hints=lax-ioctls --leak-check=full --show-reachable=yes --log-file=/tmp/valgrind-%p.log" | |
16 | shift; | |
17 | ;; | |
11b8ef8b TT |
18 | --skip-slow-tests) |
19 | SKIP_SLOW_TESTS=yes | |
20 | shift; | |
21 | ;; | |
f3331df6 AD |
22 | esac |
23 | ||
24 | case "$1" in | |
eec6f838 | 25 | *.failed|*.new|*.ok|*.log|*.tmp|*.slow) exit 0 ;; |
f3331df6 AD |
26 | esac |
27 | ||
28 | test_dir=$1 | |
29 | cmd_dir=$SRCDIR | |
30 | ||
31 | if test "$TEST_CONFIG"x = x; then | |
32 | TEST_CONFIG=$SRCDIR/test_config | |
33 | fi | |
34 | ||
35 | . $TEST_CONFIG | |
36 | ||
f3331df6 | 37 | test_name=`echo $test_dir | sed -e 's;.*/;;'` |
358c94ab | 38 | |
f3331df6 AD |
39 | if [ -f $test_dir ] ; then |
40 | exit 0; | |
41 | fi | |
42 | if [ ! -d $test_dir ] ; then | |
43 | echo "The test '$test_name' does not exist." | |
44 | exit 0; | |
45 | fi | |
46 | if [ -z "`ls $test_dir`" ]; then | |
47 | exit 0 | |
48 | fi | |
49 | if [ -f $test_dir/name ]; then | |
50 | test_description=`cat $test_dir/name` | |
51 | else | |
52 | test_description= | |
53 | fi | |
54 | ||
11b8ef8b TT |
55 | if [ -n "$SKIP_SLOW_TESTS" -a -f $test_dir/is_slow_test ]; then |
56 | echo "$test_name: $test_description: skipped (slow test)" | |
57 | exit 0 | |
58 | fi | |
59 | ||
b7454eb8 | 60 | rm -f $test_name.ok $test_name.failed $test_name.log $test_name.slow |
f3331df6 AD |
61 | #echo -e -n "$test_name: $test_description:\r" |
62 | ||
845eac42 | 63 | TMPFILE=$(mktemp ${TMPDIR:-/tmp}/e2fsprogs-tmp-$test_name.XXXXXX) |
03fdf306 | 64 | [ "$SKIP_UNLINK" != "true" ] && trap 'rm -f $TMPFILE ; exit' 0 1 2 15 |
845eac42 | 65 | |
c8fd5f23 | 66 | start=$SECONDS |
f3331df6 AD |
67 | if [ -f $test_dir/script ]; then |
68 | . $test_dir/script | |
69 | else | |
70 | test_base=`echo $test_name | sed -e 's/_.*//'` | |
71 | default_script=$SRCDIR/defaults/${test_base}_script | |
72 | if [ -f $default_script ]; then | |
73 | . $SRCDIR/defaults/${test_base}_script | |
74 | else | |
75 | echo "$test_name: Missing test script $default_script!" | |
76 | fi | |
f3331df6 | 77 | fi |
c8fd5f23 AD |
78 | elapsed=$((SECONDS - start)) |
79 | if [ $elapsed -gt 60 -a ! -f $test_dir/is_slow_test ]; then | |
eec6f838 AD |
80 | echo "$test_name: *** took $elapsed seconds to finish ***" | |
81 | tee $test_name.slow | |
c8fd5f23 AD |
82 | echo "$test_name: consider adding $test_dir/is_slow_test" |
83 | fi | |
f3331df6 | 84 | |
e99e0586 LC |
85 | if [ -n "$PRINT_FAILED" -a -f $test_name.failed ] ; then |
86 | cat $test_name.failed | |
87 | fi | |
88 | ||
f3331df6 AD |
89 | if [ "$SKIP_UNLINK" != "true" ] ; then |
90 | rm -f $TMPFILE | |
91 | fi | |
92 |