pspp-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Running tests under wine.


From: Harry Thijssen
Subject: Re: Running tests under wine.
Date: Thu, 24 Mar 2016 14:53:34 +0100

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 <address@hidden>:
Here's something to try.

--8<--------------------------cut here-------------------------->8--

commit f9a7e150e875a23646c4d1b07697e37059c8a088
Author: Ben Pfaff <address@hidden>
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
-      address@hidden(MKDIR_P) tests/valgrind
-       $(AM_V_GEN)$(SED) -e 's,address@hidden@],$@,' \
-               $(top_srcdir)/tests/valgrind-wrapper.in > address@hidden
-       $(AM_V_at)chmod +x address@hidden
-       $(AM_V_at)mv address@hidden $@
-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 \"address@hidden"" > $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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]