Blame tests/testwrapper.sh

Packit f00812
#!/bin/bash -vx
Packit f00812
set -euo pipefail
Packit f00812
Packit f00812
# testwrapper.sh: run a flex test, typically called by a Makefile
Packit f00812
Packit f00812
# Each test will exercise some feature or aspect of flex. Run the test with any input it may need.
Packit f00812
Packit f00812
INPUT_DIRECTORY=""
Packit f00812
INPUT_NAME=""
Packit f00812
INPUT_COUNT=0
Packit f00812
USE_REDIRECT=0
Packit f00812
DO_COMPARISON=0
Packit f00812
Packit f00812
while getopts :d:i:rt1 OPTION ; do
Packit f00812
    case $OPTION in
Packit f00812
        d) INPUT_DIRECTORY=$OPTARG ;;
Packit f00812
        i)
Packit f00812
            if [ "$INPUT_NAME" == "" ] ; then
Packit f00812
                INPUT_NAME="$OPTARG"
Packit f00812
            else
Packit f00812
                INPUT_NAME="$INPUT_NAME $OPTARG"
Packit f00812
            fi
Packit f00812
            INPUT_COUNT=$(($INPUT_COUNT+1))
Packit f00812
            ;;
Packit f00812
        r) USE_REDIRECT=1 ;;
Packit f00812
        t) USE_TABLES=1 ;;
Packit f00812
        1) DO_COMPARISON=1 ;;
Packit f00812
    esac
Packit f00812
    done
Packit f00812
Packit f00812
TESTNAME="${!OPTIND}"
Packit f00812
Packit f00812
INPUT_NAME=${INPUT_NAME:-$INPUT_DIRECTORY/`basename $TESTNAME`.txt}
Packit f00812
Packit f00812
if [ "$DO_COMPARISON" -eq "1" ] ; then
Packit f00812
    test `$TESTNAME 1 < $INPUT_NAME` -eq `$TESTNAME < $INPUT_NAME`
Packit f00812
    exit $?
Packit f00812
    fi
Packit f00812
Packit f00812
if [ $INPUT_COUNT -gt 1 ] ; then
Packit f00812
    $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME}.tables} ${INPUT_NAME}
Packit f00812
    exit $?
Packit f00812
    fi
Packit f00812
Packit f00812
if [ -f ${INPUT_NAME} ] ; then
Packit f00812
    if [ $USE_REDIRECT == 1 ] ; then
Packit f00812
        $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME}.tables} < $INPUT_NAME
Packit f00812
    else
Packit f00812
        $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME}.tables} $INPUT_NAME
Packit f00812
    fi
Packit f00812
else
Packit f00812
    $TESTNAME
Packit f00812
fi