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