blob: fafa085baf201a10b0a75dd0c72ea19d63b9131f [file] [log] [blame]
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