From: Stefano Lattarini Date: Wed, 8 Feb 2012 12:21:58 +0000 (+0100) Subject: depcomp tests: avoid redundant runs for libtool tests X-Git-Tag: ng-0.5a~9^2~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=19bab32531bc8c41e984460a2fa59205ecb623cd;p=thirdparty%2Fautomake.git depcomp tests: avoid redundant runs for libtool tests When running libtool-oriented tests, our 'depcomp.sh' script used to run the same checks thrice: once after having run configure with the '--disable-shared' option, once after having run it with the '--enable-shared' option, and once by allowing configure to automatically select which kind of library (or libraries) to build. This was done to offer extra coverage for the less-common depmodes (like "aix" of "hp2") where the name of the compiler-generated depfiles can depend on whether libtool is in use *and* on which kind of libraries libtool is building (static, shared, or both). About this, see commit 'Release-1-10-24-ge89ec38' of 28-03-2007, "* lib/depcomp (aix): Rewrite depmode in the spirit of the tru64 one". But that extra coverage came at the price of *considerably* slowing down the depcomp libtool-oriented tests, since for each of them the tested source tree was configured and built *twelve* times (rather than "just" four as it is for the non-libtool case). So, to strike a balance between coverage and speed, we now run the libtool-oriented tests with the three different configuration modes *only* when it is possible that the depmode that will get selected is one of those which can actually benefit from the extra coverage. * tests/depcomp.sh: Adjust to only run the threefold libtool tests when that can truly be potentially useful. Add related explanatory comments. --- diff --git a/tests/depcomp.sh b/tests/depcomp.sh index 67db77005..a53c0b57c 100755 --- a/tests/depcomp.sh +++ b/tests/depcomp.sh @@ -148,7 +148,6 @@ mkdir build-aux sub src src/sub2 case $depcomp_with_libtool in yes) - plan_ 84 po=Plo objext=lo a=la normalized_target=libfoo_la LIBPRIMARY=LTLIBRARIES LINKADD=LIBADD @@ -166,7 +165,6 @@ case $depcomp_with_libtool in } ;; no) - plan_ 28 po=Po objext='$(OBJEXT)' a=a normalized_target=foo LIBPRIMARY=LIBRARIES LINKADD=LDADD @@ -260,14 +258,42 @@ $ACLOCAL && $AUTOCONF && $AUTOMAKE -a \ test -f build-aux/depcomp \ || fatal_ "depcomp script not installed" +# To offer extra coverage for the depmodes (like "aix" of "hp2") where the +# name of the compiler-generated depfiles can depend on whether libtool is +# in use *and* on which kind of libraries libtool is building (static, +# shared, or both), we would like to run the libtool-oriented tests thrice: +# once after having run configure with the '--disable-shared' option, once +# after having run it with the '--enable-shared' options, and once by +# leaving it to configure to automatically select which kind of library (or +# libraries) to build. +# +# But doing such three-fold checks unconditionally for all the depmodes +# would slow down the already too slow libtool tests unacceptably (up to a +# 150-200% factor), with no real gain in coverage for most of the depmodes. +# So, since the depmodes that would benefit from the extra tests are never +# forced to configure in out tests below, but can only be automatically +# selected by '--enable-dependency-tracking', we make this threefold check +# only in this later case. + case $depmode in auto) + plan_ 84 + do_all_tests () + { + do_test default + do_test noshared --disable-shared + do_test nostatic --disable-static + } displayed_depmode='..*' # At least one character long. cfg_deptrack=--enable-dependency-tracking ;; disabled) + plan_ 28 + do_all_tests() { do_test; } displayed_depmode=none cfg_deptrack=--disable-dependency-tracking ;; *) + plan_ 28 + do_all_tests() { do_test; } displayed_depmode="(cached) $depmode" cfg_deptrack="$cachevar=$depmode" # Sanity check: ensure the cache variable we force is truly @@ -378,13 +404,7 @@ do_test () } for vpath in no simple long absolute; do - if test $depcomp_with_libtool = no; then - do_test - else - do_test default - do_test noshared --disable-shared - do_test nostatic --disable-static - fi + do_all_tests done :