1#!/bin/sh 2# 3# Test script for e2fsck 4# 5 6LC_ALL=C 7export LC_ALL 8 9case "$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 ;; 18esac 19 20if test "$1"x = x ; then 21 TESTS=`ls -d $SRCDIR/[a-zA-Z]_* | $EGREP -v "\.failed|\.new"` 22else 23 TESTS= 24 for i 25 do 26 case $i in 27 *.failed|*.new) continue ;; 28 [a-zA-Z]) TESTS="$TESTS $SRCDIR/${i}_*" ;; 29 *) TESTS="$TESTS $SRCDIR/$i" ;; 30 esac 31 done 32fi 33 34cmd_dir=$SRCDIR 35 36if test "$TEST_CONFIG"x = x; then 37 TEST_CONFIG=$SRCDIR/test_config 38fi 39 40. $TEST_CONFIG 41 42for test_dir in $TESTS 43do 44 test_name=`echo $test_dir | sed -e 's;.*/;;'` 45 if [ -f $test_dir ] ; then 46 continue; 47 fi 48 if [ ! -d $test_dir ] ; then 49 echo "The test '$test_name' does not exist." 50 continue; 51 fi 52 if [ -z "`ls $test_dir`" ]; then 53 continue 54 fi 55 if [ -f $test_dir/name ]; then 56 test_description=`cat $test_dir/name` 57 printf "%s: %s: " "$test_name" "$test_description" 58 else 59 printf "%s: " "$test_name" 60 fi 61 if [ -f $test_dir/script ]; then 62 . $test_dir/script 63 else 64 test_base=`echo $test_name | sed -e 's/_.*//'` 65 default_script=$SRCDIR/defaults/${test_base}_script 66 if [ -f $default_script ]; then 67 . $SRCDIR/defaults/${test_base}_script 68 else 69 echo "Missing test script!" 70 fi 71 fi 72done 73 74num_ok=`ls *.ok 2>/dev/null | wc -l` 75num_failed=`ls *.failed 2>/dev/null | wc -l` 76 77echo "$num_ok tests succeeded $num_failed tests failed" 78 79test "$num_failed" -eq 0 || exit 1 80