1 1.1 christos #!/bin/sh 2 1.1.1.4.8.1 tls # Id: run_test.sh,v 1.8 2012/01/15 11:50:35 tom Exp 3 1.1.1.2 christos # vi:ts=4 sw=4: 4 1.1.1.2 christos 5 1.1.1.2 christos if test $# = 1 6 1.1.1.2 christos then 7 1.1.1.2 christos PROG_DIR=`pwd` 8 1.1.1.2 christos TEST_DIR=$1 9 1.1.1.2 christos else 10 1.1.1.2 christos PROG_DIR=.. 11 1.1.1.2 christos TEST_DIR=. 12 1.1.1.2 christos fi 13 1.1.1.2 christos 14 1.1.1.2 christos YACC=$PROG_DIR/yacc 15 1.1.1.2 christos 16 1.1.1.2 christos tmpfile=temp$$ 17 1.1.1.4.8.1 tls rm -f test-* 18 1.1.1.2 christos 19 1.1 christos echo '** '`date` 20 1.1.1.4.8.1 tls for input in ${TEST_DIR}/*.y 21 1.1 christos do 22 1.1.1.4.8.1 tls case $input in 23 1.1 christos test*) 24 1.1.1.4.8.1 tls echo "?? ignored $input" 25 1.1 christos ;; 26 1.1 christos *) 27 1.1.1.4.8.1 tls root=`basename $input .y` 28 1.1 christos ROOT="test-$root" 29 1.1.1.2 christos prefix=${root}_ 30 1.1.1.2 christos 31 1.1.1.2 christos OPTS= 32 1.1.1.4.8.1 tls OPT2= 33 1.1.1.2 christos TYPE=".output .tab.c .tab.h" 34 1.1.1.4.8.1 tls case $input in 35 1.1.1.2 christos ${TEST_DIR}/code_*) 36 1.1.1.2 christos OPTS="$OPTS -r" 37 1.1.1.2 christos TYPE="$TYPE .code.c" 38 1.1.1.2 christos prefix=`echo "$prefix" | sed -e 's/^code_//'` 39 1.1.1.2 christos ;; 40 1.1.1.2 christos ${TEST_DIR}/pure_*) 41 1.1.1.2 christos OPTS="$OPTS -P" 42 1.1.1.2 christos prefix=`echo "$prefix" | sed -e 's/^pure_//'` 43 1.1.1.2 christos ;; 44 1.1.1.4.8.1 tls ${TEST_DIR}/quote_*) 45 1.1.1.4.8.1 tls OPT2="-s" 46 1.1.1.4.8.1 tls ;; 47 1.1.1.2 christos esac 48 1.1.1.2 christos 49 1.1.1.4.8.1 tls for opt2 in "" $OPT2 50 1.1 christos do 51 1.1.1.4.8.1 tls $YACC $OPTS $opt2 -v -d -p $prefix -b $ROOT${opt2} $input 52 1.1.1.4.8.1 tls for type in $TYPE 53 1.1.1.4.8.1 tls do 54 1.1.1.4.8.1 tls REF=${TEST_DIR}/${root}${opt2}${type} 55 1.1.1.4.8.1 tls CMP=${ROOT}${opt2}${type} 56 1.1.1.4.8.1 tls if test ! -f $CMP 57 1.1.1.4.8.1 tls then 58 1.1.1.4.8.1 tls echo "...not found $CMP" 59 1.1.1.4.8.1 tls else 60 1.1.1.4.8.1 tls sed -e s,$CMP,$REF, \ 61 1.1.1.4.8.1 tls -e /YYPATCH/d \ 62 1.1.1.4.8.1 tls -e 's,#line \([1-9][0-9]*\) "'$TEST_DIR'/,#line \1 ",' \ 63 1.1.1.4.8.1 tls < $CMP >$tmpfile \ 64 1.1.1.4.8.1 tls && mv $tmpfile $CMP 65 1.1.1.4.8.1 tls if test ! -f $REF 66 1.1.1.4.8.1 tls then 67 1.1.1.4.8.1 tls mv $CMP $REF 68 1.1.1.4.8.1 tls echo "...saved $REF" 69 1.1.1.4.8.1 tls elif ( cmp -s $REF $CMP ) 70 1.1.1.4.8.1 tls then 71 1.1.1.4.8.1 tls echo "...ok $REF" 72 1.1.1.4.8.1 tls rm -f $CMP 73 1.1.1.4.8.1 tls else 74 1.1.1.4.8.1 tls echo "...diff $REF" 75 1.1.1.4.8.1 tls diff -u $REF $CMP 76 1.1.1.4.8.1 tls fi 77 1.1.1.4.8.1 tls fi 78 1.1.1.4.8.1 tls done 79 1.1 christos done 80 1.1 christos ;; 81 1.1 christos esac 82 1.1 christos done 83