This patch is intended as a substitute for John's patch 0001 or my patch in bug #41004. It should have the same requirements.
On Thu, Mar 24, 2016 at 02:53:34PM +0100, Harry Thijssen wrote: > Hi > > I will test it in the next days. > > It is sufficent to run the patch against the source in the tarball? > > The test for pspp arealready changed in $RUNNER pspp after a change by > John. This patch doesn't interfere with that? > > Have fun > > > 2016-03-24 5:41 GMT+01:00 Ben Pfaff <[email protected]>: > > > Here's something to try. > > > > --8<--------------------------cut here-------------------------->8-- > > > > commit f9a7e150e875a23646c4d1b07697e37059c8a088 > > Author: Ben Pfaff <[email protected]> > > Date: Wed Mar 23 21:41:00 2016 -0700 > > > > tests: Add support for generic wrapper. > > > > With this change, "make check RUNNER='...'" runs all of the binaries > > that > > PSPP builds under the supervision of $RUNNER, so that, for example, the > > "pspp" binary is run as "$RUNNER pspp". This is useful for wrapping > > programs with, for example, "wine", for cross-compiling. > > > > diff --git a/tests/automake.mk b/tests/automake.mk > > index 9284b93..dbbb3d3 100644 > > --- a/tests/automake.mk > > +++ b/tests/automake.mk > > @@ -406,7 +406,8 @@ DISTCLEANFILES += tests/atconfig tests/atlocal > > $(TESTSUITE) > > AUTOTEST_PATH = > > tests/data:tests/language/lexer:tests/libpspp:tests/output:src/ui/terminal:utilities > > > > $(srcdir)/tests/testsuite.at: tests/testsuite.in tests/automake.mk > > - $(AM_V_GEN)cp $< $@ > > + $(AM_V_GEN)printf '\043 Generated automatically -- do not modify! > > -*- buffer-read-only: t -*-\n' > $@ > > + $(AM_V_at)cat $< >> $@ > > $(AM_V_at)for t in $(TESTSUITE_AT); do \ > > echo "m4_include([$$t])" >> $@ ;\ > > done > > @@ -414,7 +415,7 @@ EXTRA_DIST += tests/testsuite.at > > > > CHECK_LOCAL += tests_check > > tests_check: tests/atconfig tests/atlocal $(TESTSUITE) $(check_PROGRAMS) > > - XTERM_LOCALE='' $(SHELL) '$(TESTSUITE)' -C tests > > AUTOTEST_PATH=$(AUTOTEST_PATH) $(TESTSUITEFLAGS) > > + XTERM_LOCALE='' $(SHELL) '$(TESTSUITE)' -C tests > > AUTOTEST_PATH=$(AUTOTEST_PATH) RUNNER='$(RUNNER)' $(TESTSUITEFLAGS) > > > > CLEAN_LOCAL += tests_clean > > tests_clean: > > @@ -437,51 +438,9 @@ $(srcdir)/package.m4: $(top_srcdir)/configure.ac > > echo 'm4_define([AT_PACKAGE_BUGREPORT], [$(PACKAGE_BUGREPORT)])' > > && \ > > echo 'm4_define([AT_PACKAGE_URL], [$(PACKAGE_URL)])'; \ > > } >'$(srcdir)/package.m4' > > - > > -# valgrind support for Autotest testsuite > > - > > -valgrind_wrappers = \ > > - tests/valgrind/datasheet-test \ > > - tests/valgrind/command-name-test \ > > - tests/valgrind/scan-test \ > > - tests/valgrind/segment-test \ > > - tests/valgrind/abt-test \ > > - tests/valgrind/bt-test \ > > - tests/valgrind/encoding-guesser-test \ > > - tests/valgrind/heap-test \ > > - tests/valgrind/hmap-test \ > > - tests/valgrind/hmapx-test \ > > - tests/valgrind/i18n-test \ > > - tests/valgrind/ll-test \ > > - tests/valgrind/llx-test \ > > - tests/valgrind/range-map-test \ > > - tests/valgrind/range-set-test \ > > - tests/valgrind/range-tower-test \ > > - tests/valgrind/sparse-array-test \ > > - tests/valgrind/sparse-xarray-test \ > > - tests/valgrind/str-test \ > > - tests/valgrind/string-map-test \ > > - tests/valgrind/stringi-map-test \ > > - tests/valgrind/string-set-test \ > > - tests/valgrind/stringi-set-test \ > > - tests/valgrind/tower-test \ > > - tests/valgrind/u8-istream-test \ > > - tests/valgrind/render-test \ > > - tests/valgrind/pspp-convert \ > > - tests/valgrind/pspp > > - > > -$(valgrind_wrappers): tests/valgrind-wrapper.in > > - @$(MKDIR_P) tests/valgrind > > - $(AM_V_GEN)$(SED) -e 's,[@]wrap_program[@],$@,' \ > > - $(top_srcdir)/tests/valgrind-wrapper.in > [email protected] > > - $(AM_V_at)chmod +x [email protected] > > - $(AM_V_at)mv [email protected] $@ > > -CLEANFILES += $(valgrind_wrappers) > > -EXTRA_DIST += tests/valgrind-wrapper.in > > > > -VALGRIND = $(SHELL) $(abs_top_builddir)/libtool --mode=execute valgrind > > --log-file=valgrind.%p --leak-check=full --num-callers=20 > > -check-valgrind: all tests/atconfig tests/atlocal $(TESTSUITE) > > $(valgrind_wrappers) > > - XTERM_LOCALE='' $(SHELL) '$(TESTSUITE)' -C tests > > VALGRIND='$(VALGRIND)' AUTOTEST_PATH='tests/valgrind:$(AUTOTEST_PATH)' -d > > $(TESTSUITEFLAGS) > > +check-valgrind: > > + $(MAKE) check RUNNER='$(SHELL) $(abs_top_builddir)/libtool > > --mode=execute valgrind --log-file=valgrind.%p --leak-check=full > > --num-callers=20' TESTSUITEFLAGS='$(TESTSUITEFLAGS) -d' > > @echo > > @echo '--------------------------------' > > @echo 'Valgrind output is in:' > > diff --git a/tests/testsuite.in b/tests/testsuite.in > > index 738ffea..95673dc 100644 > > --- a/tests/testsuite.in > > +++ b/tests/testsuite.in > > @@ -6,3 +6,41 @@ m4_ifndef([AT_SKIP_IF], > > [AT_CHECK([($1) \ > > && exit 77 || exit 0], [0], [ignore], [ignore])])]) > > > > +m4_divert_text([PREPARE_TESTS], [dnl > > +if test X"$RUNNER" != X; then > > + wrapper_dir=`pwd`/wrappers > > + rm "$wrapper_dir"/* > > + test -d "$wrapper_dir" || mkdir "$wrapper_dir" > > + > > + wrap_dir () { > > + test -d "$1" || return > > + for file in "$1"/*; do > > + if test -x "$file" && test -f "$file"; then > > + base=`basename $file` > > + wrapper=$wrapper_dir/$base > > + if test ! -e "$wrapper"; then > > + echo "exec $RUNNER $file \"\$@\"" > $wrapper > > + chmod +x $wrapper > > + fi > > + fi > > + done > > + } > > + > > + save_IFS=$IFS; IFS=$PATH_SEPARATOR > > + for dir in $AUTOTEST_PATH; do > > + IFS=$save_IFS > > + test X"$dir" = X && dir=. > > + case $dir in > > + [\\/]* | ?:[\\/]*) > > + wrap_dir "$dir" > > + ;; > > + *) > > + wrap_dir "$abs_top_builddir/$dir" > > + wrap_dir "$abs_top_srcdir/$dir" > > + ;; > > + esac > > + done > > + IFS=$save_IFS > > + PATH=$wrapper_dir:$PATH > > +fi > > +]) > > diff --git a/tests/valgrind-wrapper.in b/tests/valgrind-wrapper.in > > deleted file mode 100755 > > index a60cd9e..0000000 > > --- a/tests/valgrind-wrapper.in > > +++ /dev/null > > @@ -1,38 +0,0 @@ > > -#! /bin/sh > > - > > -program=`basename "$0"` > > - > > -new_PATH= > > -save_IFS=$IFS > > -IFS=: > > -found=no > > -for dir in $PATH; do > > - IFS=$save_IFS > > - if test "X$dir" = X; then > > - dir=. > > - fi > > - if test -x "$dir/$program"; then > > - if test $found = no; then > > - found=yes > > - continue > > - else > > - if test "X$next_program" = X; then > > - next_program=$dir/$program > > - fi > > - fi > > - fi > > -done > > -IFS=$save_IFS > > - > > -if test $found = no; then > > - echo "$0: $program not found in PATH ($PATH)" >&2 > > - exit 1 > > -elif test "X$next_program" = X; then > > - echo "$0: $program found only once in PATH ($PATH)" >&2 > > - exit 1 > > -fi > > - > > -: ${VALGRIND:=libtool --mode=execute valgrind --log-file=valgrind.%p > > --leak-check=full --num-callers=20} > > -exec $VALGRIND $next_program "$@" > > -echo "$0: $VALGRIND $wrap_program $* failed" >&2 > > -exit 1 > > _______________________________________________ pspp-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/pspp-dev
