1*463ae347Schristos#!/bin/sh 2*463ae347Schristosset -vx 3*463ae347Schristosset -euvx 430da1778Schristos 530da1778Schristos# testwrapper.sh: run a flex test, typically called by a Makefile 630da1778Schristos 7*463ae347Schristos# Each test will exercise some feature or aspect of flex. Run the test with any 8*463ae347Schristos# input it may need. 930da1778Schristos 1030da1778SchristosINPUT_DIRECTORY="" 1130da1778SchristosINPUT_NAME="" 1230da1778SchristosINPUT_COUNT=0 1330da1778SchristosUSE_REDIRECT=0 1430da1778SchristosDO_COMPARISON=0 1530da1778Schristos 1630da1778Schristoswhile getopts :d:i:rt1 OPTION ; do 1730da1778Schristos case $OPTION in 1830da1778Schristos d) INPUT_DIRECTORY=$OPTARG ;; 1930da1778Schristos i) 20*463ae347Schristos if [ "$INPUT_NAME" = "" ] ; then 2130da1778Schristos INPUT_NAME="$OPTARG" 2230da1778Schristos else 2330da1778Schristos INPUT_NAME="$INPUT_NAME $OPTARG" 2430da1778Schristos fi 2530da1778Schristos INPUT_COUNT=$(($INPUT_COUNT+1)) 2630da1778Schristos ;; 2730da1778Schristos r) USE_REDIRECT=1 ;; 2830da1778Schristos t) USE_TABLES=1 ;; 2930da1778Schristos 1) DO_COMPARISON=1 ;; 3030da1778Schristos esac 3130da1778Schristosdone 3230da1778Schristos 33*463ae347Schristosshift $(($OPTIND-1)) 34*463ae347SchristosTESTNAME=$1 3530da1778Schristos 36*463ae347SchristosINPUT_NAME=${INPUT_NAME:-$INPUT_DIRECTORY/`basename "${TESTNAME%.exe}"`.txt} 3730da1778Schristos 38*463ae347Schristosif [ $DO_COMPARISON = 1 ] ; then 39*463ae347Schristos TEST_OUTPUT=`$TESTNAME < $INPUT_NAME` 40*463ae347Schristos REF_OUTPUT=`$TESTNAME 1 < $INPUT_NAME` 41*463ae347Schristos test "$TEST_OUTPUT" -eq "$REF_OUTPUT" 4230da1778Schristos exit $? 4330da1778Schristosfi 4430da1778Schristos 4530da1778Schristosif [ $INPUT_COUNT -gt 1 ] ; then 4656bd8546Schristos $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME%.exe}.tables} ${INPUT_NAME} 4730da1778Schristos exit $? 4830da1778Schristosfi 4930da1778Schristos 5056bd8546Schristosif [ -f ${INPUT_NAME} ] ; then 51*463ae347Schristos if [ $USE_REDIRECT = 1 ] ; then 5256bd8546Schristos $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME%.exe}.tables} < $INPUT_NAME 5330da1778Schristos else 5456bd8546Schristos $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME%.exe}.tables} $INPUT_NAME 5530da1778Schristos fi 5630da1778Schristoselse 5730da1778Schristos $TESTNAME 5830da1778Schristosfi 59