To make that really clear, I've now attached this to bug #41004 as patch3. On Thu, Mar 24, 2016 at 09:13:55AM -0700, Ben Pfaff wrote: > 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
