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
|