* tests/defs.in: Give meaningful messages about the reasons of a test skip; this is especially useful as this file is run without verbose xtraces on. Related reorderings in the code and new comments. --- ChangeLog | 6 ++++ tests/defs.in | 80 +++++++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 70 insertions(+), 16 deletions(-)
From 644508af7c26667010e50cc2acc42db3febb1f41 Mon Sep 17 00:00:00 2001 From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Wed, 8 Sep 2010 18:26:20 +0200 Subject: [PATCH 5/5] Tests defs: improve messages for skipped tests. * tests/defs.in: Give meaningful messages about the reasons of a test skip; this is especially useful as this file is run without verbose xtraces on. Related reorderings in the code and new comments. --- ChangeLog | 6 ++++ tests/defs.in | 80 +++++++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 70 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index fb1c7ee..05e0985 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2010-09-08 Stefano Lattarini <stefano.lattar...@gmail.com> + Tests defs: improve messages for skipped tests. + * tests/defs.in: Give meaningful messages about the reasons of a + test skip; this is especially useful as this file is run without + verbose xtraces on. Related reorderings in the code and new + comments. + Tests defs: do not print message "Running test $0" anymore. * tests/defs.in: Printing the message "=== Running test $0" at the beginning of each tests made sense when Automake used the old diff --git a/tests/defs.in b/tests/defs.in index 0e0b267..2d07554 100644 --- a/tests/defs.in +++ b/tests/defs.in @@ -261,6 +261,7 @@ do export GCJ echo "$me: running $GCJ --version" ( $GCJ --version ) || exit 77 + echo "$me: running $GCJ -v" ( $GCJ -v ) || exit 77 ;; g++) @@ -297,11 +298,16 @@ do (echo foo >> $priv_check_temp) >/dev/null 2>&1 overwrite_status=$? rm -f $priv_check_temp - test $overwrite_status = 0 && exit 77 + if test $overwrite_status = 0; then + echo "$me: this test shouldn't be run as root" + exit 77 + fi ;; perl-threads) - # Skip with Devel::Cover: it cannot cope with threads. - test "$WANT_NO_THREADS" = yes && exit 77 + if test x"$WANT_NO_THREADS" = x"yes"; then + echo "$me: skip with Devel::Cover: it cannot cope with threads." + exit 77 + fi ;; python) # Python doesn't support --version, it has -V @@ -317,7 +323,10 @@ do (: > $ro_dir_temp/probe) >/dev/null 2>/dev/null create_status=$? rm -rf $ro_dir_temp - test $create_status = 0 && exit 77 + if test $create_status = 0; then + echo "$me: support of read-only directories is required" + exit 77 + fi ;; rst2html) # Try the variants that are tried in check.am. @@ -326,6 +335,7 @@ do echo "$me: running $r2h --version" $r2h --version && break 2 done + echo "$me: no proper rst2html program found" exit 77 done ;; @@ -333,13 +343,16 @@ do # DejaGnu's runtest program. We rely on being able to specify # the program on the runtest command-line. This requires # DejaGnu 1.4.3 or later. - echo "$me: running runtest --version" + echo "$me: running runtest SOMEPROGRAM=someprogram --version" (runtest SOMEPROGRAM=someprogram --version) || exit 77 ;; tex) # No all versions of Tex support `--version', so we use # a configure check. - test -n "@TEX@" || exit 77 + if test x'@TEX@' = x; then + echo "$me: TeX is required, but it wasn't found by configure" + exit 77 + fi ;; texi2dvi-o) # Texi2dvi supports `-o' since Texinfo 4.1. @@ -354,6 +367,37 @@ do esac done +# Using just `$testbuilddir' for the check here is ok, since the +# further temporary subdirectory where the test will be run is +# ensured not to contain any whitespace character. +case $testbuilddir in + *\ *|*\ *) + case " $required " in + *' libtool '* | *' libtoolize '* ) + echo "$me: libtool/libtoolized cannot cope correctly" + echo "$me: with spaces in the build tree." + exit 77 + ;; + esac + ;; +esac + +# This test is necessary, although Automake's configure script bails out +# when $srcdir contains spaces. This is because $testsrcdir is in not +# configure-time $srcdir, but is instead configure-time $abs_srcdir, and +# that is allowed to contain spaces. +case $testsrcdir in + *\ * |*\ *) + case " $required " in + *' libtool '* | *' libtoolize '* | *' gettext '* ) + echo "$me: our testsuite setup cannot cope correctly with spaces" + echo "$me: in the source tree for libtool/gettext tests." + exit 77 + ;; + esac + ;; +esac + # We might need extra macros, e.g., from Libtool or Gettext. # Find them on the system. # Use `-I $top_testsrcdir/m4' in addition to `--acdir=$top_testsrcdir/m4', @@ -384,16 +428,20 @@ case " $required " in fi done case " $required " in - *' libtool '* | *' libtoolize '* ) test $libtool_found = yes || exit 77;; - *' gettext '* ) test $gettext_found = yes || exit 77;; - esac - # Libtool cannot cope with spaces in the build tree. Our testsuite setup - # cannot cope with spaces in the source tree name for Libtool and gettext - # tests. Using just `$testbuilddir' for the check here is ok, since the - # furter temporary subdirectory where the test will be run is ensured not - # to contain any space. - case $testsrcdir,$testbuilddir in - *\ * | *\ *) exit 77;; + *' libtool '*|*' libtoolize '*) + if test x"$libtool_found" != x"yes"; then + echo "$me: libtool/libtoolize is required, but libtool.m4 wasn't" + echo "$me: found in directories $aclocaldir $extra_includes" + exit 77 + fi + ;; + *' gettext '*) + if test x"$gettext_found" != x"yes"; then + echo "$me: gettext is required, but gettext.m4 wasn't found" + echo "$me: in directories $aclocaldir $extra_includes" + exit 77 + fi + ;; esac ACLOCAL="$ACLOCAL -Wno-syntax -I $top_testsrcdir/m4 $extra_includes -I $aclocaldir" ;; -- 1.7.1