]> granicus.if.org Git - flex/commitdiff
tests: fixed paths to input files.
authorMike Frysinger <vapier@gentoo.org>
Sun, 13 Dec 2015 04:28:43 +0000 (23:28 -0500)
committerWill Estes <westes575@gmail.com>
Mon, 14 Dec 2015 00:02:51 +0000 (19:02 -0500)
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.

- 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
tests/testwrapper.sh

index 88c84e390ef7bb93b754e11a6950e7f107084275..428e4b25c86b1834b3d343d212e64dede9599496 100644 (file)
@@ -33,7 +33,7 @@ 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
@@ -435,7 +435,7 @@ tableopts_tests  := $(tableopts_opttests) $(tableopts_vertests) $(tableopts_sert
 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
 
 tableopts_opt_nr%.c: tableopts.l4 $(FLEX)
        $(FLEX) -P $(subst -,_,$(basename $(*F))) $* -o $@ $<
index 30127b5c3f57d31dd57ebda343cd5593788cbb37..051e20bb10997f5a20e31c22afbc65a4cadb708a 100755 (executable)
@@ -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