| https://bugs.gentoo.org/567332 |
| https://github.com/westes/flex/pull/39 |
| |
| From e7761df66e8412093d0c1c25ce24e3a912076564 Mon Sep 17 00:00:00 2001 |
| From: Mike Frysinger <vapier@gentoo.org> |
| 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 |
| <fails to open inputs> |
| |
| 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 |
| |