Home | History | Annotate | Line # | Download | only in test
run_test.sh revision 1.1.1.4.8.1
      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