From: Stefano Lattarini Date: Wed, 23 May 2012 08:57:10 +0000 (+0200) Subject: [ng] doc: update w.r.t. recent changes in testsuite harnesses (TESTS-based) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=68a4ec81569a905ce8fe68912915cb2b68ddc6c4;p=thirdparty%2Fautomake.git [ng] doc: update w.r.t. recent changes in testsuite harnesses (TESTS-based) * doc/automake-ng.texi (EXEEXT): $(TESTS) and $(XFAIL_TESTS) are not anymore rewritten for $(EXEEXT) appending, even when the 'serial-tests' option is in use. (Parallel Tests Harness): The content of $(TEST_EXTENSIONS) is more liberally accepted now (any dot-starting string is accepted), and if it turns out any entry is invalid, an error about that will be reported at make runtime, not at automake runtime. * t/test-extensions-funny-chars.sh: Enhance to verify that we can actually have test extension composed by digits (as is implied by the manual). Signed-off-by: Stefano Lattarini --- diff --git a/doc/automake-ng.texi b/doc/automake-ng.texi index b68015e37..55a128896 100644 --- a/doc/automake-ng.texi +++ b/doc/automake-ng.texi @@ -6896,12 +6896,6 @@ bin_PROGRAMS = liver$(EXEEXT) The targets Automake generates are likewise given the @samp{$(EXEEXT)} extension. -When the @option{parallel-tests} option is in use, the variables -@code{TESTS} and @code{XFAIL_TESTS} (@pxref{Simple Tests}) are also -rewritten if they contain filenames that have been declared as -programs in the same @file{Makefile}. (This is mostly useful when some -programs from @code{check_PROGRAMS} are listed in @code{TESTS}.) - However, Automake cannot apply this rewriting to @command{configure} substitutions. This means that if you are conditionally building a program using such a substitution, then your @file{configure.ac} must @@ -8981,11 +8975,14 @@ the @emph{read-only} variable @code{TEST_LOGS}, and defaults to as well as any suffix listed in @code{TEST_EXTENSIONS} removed, and @file{.log} appended. @code{TEST_EXTENSIONS} defaults to @file{.test}; it can be overridden by the user, in which case any extension listed -in it must be constituted by a dot, followed by a non-digit alphabetic -character, followed by any number of alphabetic characters. -@c Keep in sync with test-extensions.sh -For example, @samp{.sh}, @samp{.T} and @samp{.t1} are valid extensions, -while @samp{.x-y}, @samp{.6c} and @samp{.t.1} are not. +in it must start with a dot (the generated Makefile will check at +runtime that this is the case, and error out if it's not). While +@code{TEST_EXTENSIONS} entries could in theory support ``funny +characters'' (like @samp{@@} or @samp{!}), their use might cause +unexpected problems for the underlying GNU make implementation, so +you're advised to limit to the use of alphanumeric characters, plus +eventually the underscore @samp{_}, the dot @samp{.}, the dash +@samp{-} characters. @vindex _LOG_COMPILE @vindex _LOG_COMPILER diff --git a/t/test-extensions-funny-chars.sh b/t/test-extensions-funny-chars.sh index d189bfe6b..e016112cb 100755 --- a/t/test-extensions-funny-chars.sh +++ b/t/test-extensions-funny-chars.sh @@ -24,10 +24,11 @@ fetch_tap_driver echo AC_OUTPUT >> configure.ac cat >> Makefile.am <<'END' -TEST_EXTENSIONS = .@ .f-o-o .l!Nu.x -TESTS = foo.@ bar.f-o-o zardoz.l!Nu.x +TEST_EXTENSIONS = .@ .2 .f-o-o .l!Nu.x +TESTS = foo.@ bar.f-o-o baz.2 zardoz.l!Nu.x XFAIL_TESTS = zardoz.l!Nu.x @_LOG_COMPILER = $(SHELL) +2_LOG_COMPILER = $(SHELL) F-O-O_LOG_DRIVER = $(srcdir)/tap-driver L!NU.X_LOG_COMPILER = false EXTRA_DIST = $(TESTS) tap-driver @@ -42,7 +43,10 @@ cat > foo.@ << 'END' echo @K @K @K exit 0 END -chmod a-x foo.@ # We don't want it to be executable, either. +cp foo.@ baz.2 +# We don't want them to be executable, either. So do this for +# extra safety. +chmod a-x foo.@ baz.2 cat > bar.f-o-o << 'END' #! /bin/sh @@ -63,8 +67,9 @@ chmod a+x zardoz.l!Nu.x count_all () { - count_test_results total=6 pass=3 fail=0 skip=1 xfail=2 xpass=0 error=0 + count_test_results total=7 pass=4 fail=0 skip=1 xfail=2 xpass=0 error=0 grep '^PASS: foo\.@$' stdout + grep '^PASS: baz\.2$' stdout grep '^XFAIL: zardoz.l!Nu\.x$' stdout grep '^PASS: bar\.f-o-o 1 - good' stdout grep '^SKIP: bar\.f-o-o 2 # SKIP' stdout @@ -84,6 +89,8 @@ ls -l cat test-suite.log cat foo.log grep '@K @K @K' foo.log +cat baz.log +grep '@K @K @K' baz.log cat bar.log cat zardoz.log grep 'Hello Zardoz' zardoz.log && Exit 1 @@ -94,6 +101,7 @@ $MAKE clean test ! -f test-suite.log test ! -f foo.log test ! -f bar.log +test ! -f baz.log test ! -f zardoz.log st=0 @@ -103,6 +111,7 @@ count_test_results total=1 pass=0 fail=0 skip=0 xfail=0 xpass=1 error=0 cat test-suite.log test ! -f foo.log test ! -f bar.log +test ! -f baz.log cat zardoz.log grep 'Hello Zardoz' zardoz.log test $st -gt 0 || Exit 1