https://bugs.gentoo.org/567332 https://github.com/westes/flex/pull/39 From e7761df66e8412093d0c1c25ce24e3a912076564 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 12 Dec 2015 23:28:43 -0500 Subject: [PATCH] tests: fix paths to input files The current test wrapper works only when the inputs are specified using relative paths. If they're specified with absolute paths, the driver fails to detect the inputs because it always prepends the input dir name which itself is a relative path: $ cd tests $ ./testwrapper.sh -d . -i $PWD/reject.txt -t ./reject_ver.table This normally doesn't show up because people run `./configure` or, for out of tree builds, `../configure`. But if you happen to run configure with an absolute path, then automake tends to generate absolute paths as well leading to test failures. Fix all of this by dropping the implicit input directory prepending. In practice, it doesn't even make sense: - INPUT_NAME is often a list of files, not just a single one - the input directory is used to find the testname tables which are usually generated, so it's impossible to use files from both source and build directories - most of the time, the full/correct path is already specified --- tests/Makefile.am | 4 ++-- tests/testwrapper.sh | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/Makefile.am b/tests/Makefile.am index cc9c178..6d1d9fe 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -35,7 +35,7 @@ LOG_COMPILER = $(srcdir)/testwrapper.sh LOG_COMPILER = $(srcdir)/testwrapper.sh AM_LOG_FLAGS = -d $(srcdir) -r REJECT_LOG_COMPILER = $(srcdir)/testwrapper.sh -AM_REJECT_LOG_FLAGS = -d $(srcdir) -i reject.txt -r +AM_REJECT_LOG_FLAGS = -d $(srcdir) -i $(srcdir)/reject.txt -r TABLE_LOG_COMPILER = $(srcdir)/testwrapper.sh AM_TABLE_LOG_FLAGS = -d $(builddir) -i $(srcdir)/reject.txt -t DIRECT_LOG_COMPILER = $(srcdir)/testwrapper.sh @@ -437,7 +437,7 @@ tableopts_tests := $(tableopts_opttests) $(tableopts_vertests) $(tableopts_sert tableopts_tests := $(tableopts_opttests) $(tableopts_vertests) $(tableopts_sertests) tableopts_c := $(addsuffix .c,$(tableopts_tests)) OPT_LOG_COMPILER = $(srcdir)/testwrapper.sh -AM_OPT_LOG_FLAGS = -d $(srcdir) -i tableopts.txt -r +AM_OPT_LOG_FLAGS = -d $(srcdir) -i $(srcdir)/tableopts.txt -r SER_LOG_COMPILER = $(srcdir)/testwrapper.sh AM_SER_LOG_FLAGS = -d $(builddir) -i $(srcdir)/tableopts.txt -r -t VER_LOG_COMPILER = $(srcdir)/testwrapper.sh diff --git a/tests/testwrapper.sh b/tests/testwrapper.sh index 30127b5..051e20b 100755 --- a/tests/testwrapper.sh +++ b/tests/testwrapper.sh @@ -30,10 +30,10 @@ while getopts :d:i:rt1 OPTION ; do TESTNAME="${!OPTIND}" -INPUT_NAME=${INPUT_NAME:-`basename $TESTNAME`.txt} +INPUT_NAME=${INPUT_NAME:-$INPUT_DIRECTORY/`basename $TESTNAME`.txt} if [ "$DO_COMPARISON" -eq "1" ] ; then - test `$TESTNAME 1 < $INPUT_DIRECTORY/$INPUT_NAME` -eq `$TESTNAME < $INPUT_DIRECTORY/$INPUT_NAME` + test `$TESTNAME 1 < $INPUT_NAME` -eq `$TESTNAME < $INPUT_NAME` exit $? fi @@ -42,11 +42,11 @@ if [ $INPUT_COUNT -gt 1 ] ; then exit $? fi -if [ -f ${INPUT_DIRECTORY}/${INPUT_NAME} ] ; then +if [ -f ${INPUT_NAME} ] ; then if [ $USE_REDIRECT == 1 ] ; then - $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME}.tables} < $INPUT_DIRECTORY/$INPUT_NAME + $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME}.tables} < $INPUT_NAME else - $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME}.tables} $INPUT_DIRECTORY/$INPUT_NAME + $TESTNAME ${USE_TABLES:+${INPUT_DIRECTORY}/${TESTNAME}.tables} $INPUT_NAME fi else $TESTNAME -- 2.6.2