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