Edit

kc3-lang/automake/defs-static.in

Branch :

  • Show log

    Commit

  • Author : Stefano Lattarini
    Date : 2012-05-15 16:12:09
    Hash : 7b142a7b
    Message : tests: use 'parallel-tests' Automake option by default This will help our transition from 'serial-tests' to 'parallel-tests' as the default test suite driver enabled by a TESTS assignment in the input Makefile.am. Note that that change of default will only take place in master, though. * defs: Pass the 'parallel-tests' option to the AM_INIT_AUTOMAKE invocation in the created 'configure.ac' stub, unless the variable 'am_serial_tests' is set to "yes". Don't pay attention anymore to the 'am_parallel_tests' variable, that's obsolete now. * defs-static.in: Warn if the 'am_serial_tests' variable is set in the environment; conversely, don't warn anymore about 'am_parallel_tests' being set in the environment. * Makefile.am (AM_TESTS_ENVIRONMENT): Nullify the 'am_serial_tests' variable instead of the now-obsolete 'am_parallel_tests' one. * syntax-checks.mk (sc_tests_obsolete_variables): Also warn against uses of 'am_parallel_tests', which is now deprecated in favor of 'am_serial_tests'. Similarly, if a use of 'parallel_tests' is seen, suggest using 'am_serial_tests' instead, not 'am_parallel_tests'. * gen-testsuite-part: Now that we use the 'parallel-tests' by default in our tests, we need to completely change the logic and semantics of generation of sibling tests for those tests that check the Automake generated testsuite harness itself. Do that, and give a complete explanation of the new logic and semantics in the relevant comments. * t/README: Update. * Lots of test cases: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>

  • defs-static.in
  • # -*- shell-script -*-
    # @configure_input@
    #
    # Copyright (C) 1996-2012 Free Software Foundation, Inc.
    #
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2, or (at your option)
    # any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    #
    # You should have received a copy of the GNU General Public License
    # along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
    # Defines and minimal setup for Automake testing environment.
    
    # IMPORTANT NOTES AND REQUIREMENTS
    #   - Multiple inclusions of this file should be idempotent.
    #   - This code has to be 'set -e' clean.
    #   - This file should execute correctly with any system's /bin/sh
    #     shell, not only with configure-time detected $SHELL and/or
    #     $AM_TEST_RUNNER_SHELL.
    
    # Be more Bourne compatible.
    # (Snippet inspired to configure's initialization in Autoconf 2.64)
    DUALCASE=1; export DUALCASE # for MKS sh
    if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
      emulate sh
      NULLCMD=:
      # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
      # is contrary to our usage.  Disable this feature.
      alias -g '${1+"$@"}'='"$@"'
      setopt NO_GLOB_SUBST
      # If Zsh is not started directly in Bourne-compatibility mode, it has
      # some incompatibilities in the handling of $0 that conflict with
      # our usage: i.e., $0 inside a file sourced with the '.' builtin is
      # temporarily set to the name of the sourced file.
      # Work around this when possible, otherwise abort the script.
      # Note that a bug in some versions of Zsh prevents us from resetting $0
      # in a sourced script, so the use of $argv0.  For more info see:
      #  <http://www.zsh.org/mla/workers/2009/msg01140.html>
      # Note: the apparently useless 'eval' below are needed by at least
      # dash 0.5.2, to prevent it from bailing out with an error like
      # "Syntax error: Bad substitution"
      if eval '[[ "$0" = *."test" ]]'; then
        # Good, FUNCTION_ARGZERO option was already off when this file was
        # sourced.  Thus we've nothing to do.
        argv0=$0
      elif eval 'test -n "${functrace[-1]}"'; then
        # FUNCTION_ARGZERO option was on, but we have a easy workaround.
        eval 'argv0=${functrace[-1]%:*}'
      else
        # Give up.
        echo "$0: cannot determine the path of running test script" >&2
        echo "$0: test was running with Zsh version $ZSH_VERSION" >&2
        echo "$0: did you enable the NO_FUNCTION_ARGZERO option?" >&2
        exit 99
      fi
    else
      argv0=$0
      # Avoid command substitution failure, for Tru64 sh -e and instspc*.test.
      case `(set -o) 2>/dev/null || :` in *posix*) set -o posix;; esac
    fi
    
    # Check that the environment is properly sanitized.
    # Having variables exported to the empty string is OK, since our code
    # treats such variables as if they were unset.
    for var in \
      me \
      required \
      am_using_tap \
      am_serial_tests \
      am_create_testdir \
      am_tap_implementation \
      am_test_prefer_config_shell \
      am_original_AUTOMAKE \
      am_original_ACLOCAL \
    ; do
      if eval "test x\"\$$var\" != x" && env | grep "^$var=" >/dev/null; then
        echo "$argv0: variable '$var' is set in the environment:" \
             "this is unsafe" >&2
        exit 99
      fi
    done
    unset var
    
    # See whether the current test script is expected to use TAP or not.
    # Use a sensible default, while allowing the scripts to override this
    # check.
    if test -z "$am_using_tap"; then
      case $argv0 in *.tap) am_using_tap=yes;; *) am_using_tap=no;; esac
    fi
    
    am_top_srcdir='@abs_srcdir@'
    am_top_builddir='@abs_builddir@'
    testprefix='@prefix@'
    
    # Where testsuite-related helper scripts, data files and shell libraries
    # are placed.
    am_testauxdir=$am_top_srcdir/t/ax
    
    # Support for the "installcheck" target.
    case ${am_running_installcheck:=no} in
      yes)
        am_amdir='@amdir@'
        am_automake_acdir='@automake_acdir@'
        am_bindir='@bindir@'
        am_datadir='@datadir@'
        am_docdir='@docdir@'
        am_pkgvdatadir='@pkgvdatadir@'
        am_scriptdir='@scriptdir@'
        am_system_acdir='@system_acdir@'
        ;;
      no)
        am_amdir=$am_top_srcdir/lib/am
        am_automake_acdir=$am_top_srcdir/m4
        am_bindir=$am_top_builddir/t/wrap
        am_datadir=$am_top_srcdir
        am_docdir=$am_top_srcdir/doc
        am_pkgvdatadir=$am_top_srcdir/lib
        am_scriptdir=$am_top_srcdir/lib
        am_system_acdir=$am_top_srcdir/m4/acdir
        ;;
      *)
        echo "$argv0: variable 'am_running_installcheck' has invalid"
             "value '$am_running_installcheck'" >&2
        exit 99
        ;;
    esac
    
    APIVERSION='@APIVERSION@'
    PATH_SEPARATOR='@PATH_SEPARATOR@'
    
    host_alias=${host_alias-'@host_alias@'}; export host_alias
    build_alias=${build_alias-'@build_alias@'}; export build_alias
    
    # The shell we use to run our own test scripts, determined at configure
    # time.  It is required in the self tests, and most importantly for the
    # the automatic re-execution of test scripts.
    AM_TEST_RUNNER_SHELL='@AM_TEST_RUNNER_SHELL@'
    
    # Make sure we override the user shell.  And do not read the value of
    # $SHELL from the environment (think to the non-uncommon situation where
    # e.g., $SHELL=/bin/tcsh).
    SHELL=${AM_TESTSUITE_SHELL-'@SHELL@'}; export SHELL
    
    # User can override various tools used.  Prefer overriding specific for
    # that automake testsuite, if they are available.
    AWK=${AM_TESTSUITE_AWK-${AWK-'@AWK@'}}
    PERL=${AM_TESTSUITE_PERL-${PERL-'@PERL@'}}
    MAKE=${AM_TESTSUITE_MAKE-${MAKE-'make'}}
    YACC=${AM_TESTSUITE_YACC-${YACC-'@YACC@'}}
    LEX=${AM_TESTSUITE_LEX-${LEX-'@LEX@'}}
    AUTOCONF=${AM_TESTSUITE_AUTOCONF-${AUTOCONF-'@am_AUTOCONF@'}}
    AUTOM4TE=${AM_TESTSUITE_AUTOM4TE-${AUTOM4TE-'@am_AUTOM4TE@'}}
    AUTORECONF=${AM_TESTSUITE_AUTORECONF-${AUTORECONF-'@am_AUTORECONF@'}}
    AUTOHEADER=${AM_TESTSUITE_AUTOHEADER-${AUTOHEADER-'@am_AUTOHEADER@'}}
    AUTOUPDATE=${AM_TESTSUITE_AUTOUPDATE-${AUTOUPDATE-'@am_AUTOUPDATE@'}}
    
    # Tests who want complete control over aclocal or automake command-line
    # options should use $am_original_ACLOCAL or $am_original_AUTOMAKE.  The
    # "test -z" tests take care not to re-initialize them if defs-static
    # is re-sourced, as we want defs-static to remain really idempotent.
    if test -z "$am_original_AUTOMAKE"; then
      am_original_AUTOMAKE=${AM_TESTSUITE_AUTOMAKE-${AUTOMAKE-"automake-$APIVERSION"}}
    fi
    if test -z "$am_original_ACLOCAL"; then
      am_original_ACLOCAL=${AM_TESTSUITE_ACLOCAL-${ACLOCAL-"aclocal-$APIVERSION"}}
    fi
    
    # Use -Werror because this also turns some Perl warnings into error.
    # Tests for which this is inappropriate should use -Wno-error.
    # Tests who want complete control over aclocal command-line options
    # should use $am_original_ACLOCAL instead.
    ACLOCAL="$am_original_ACLOCAL -Werror"
    
    # See how Automake should be run.  We put --foreign as the default
    # strictness to avoid having to create lots and lots of files.  A test
    # can override this by specifying a different strictness.  Use -Wall
    # -Werror by default.  Tests for which this is inappropriate (e.g. when
    # testing that a warning is enabled by a specific switch) should use
    # -Wnone or/and -Wno-error.
    # Tests who want complete control over automake command-line options
    # should use $am_original_AUTOMAKE instead.
    AUTOMAKE="$am_original_AUTOMAKE --foreign -Werror -Wall"
    
    # POSIX no longer requires 'egrep' and 'fgrep',
    # but some hosts lack 'grep -E' and 'grep -F'.
    EGREP=${AM_TESTSUITE_EGREP-'@EGREP@'}
    FGREP=${AM_TESTSUITE_FGREP-'@FGREP@'}
    
    # Compilers and their flags.  These can point to non-GNU compilers (and
    # on non-Linux and non-BSD systems, they probably will).
    CC=${AM_TESTSUITE_CC-${CC-'@CC@'}}
    CXX=${AM_TESTSUITE_CXX-${CXX-'@CXX@'}}
    F77=${AM_TESTSUITE_F77-${F77-'@F77@'}}
    FC=${AM_TESTSUITE_FC-${FC-'@FC@'}}
    CFLAGS=${AM_TESTSUITE_CFLAGS-${CFLAGS-'@CFLAGS@'}}
    CXXFLAGS=${AM_TESTSUITE_CXXFLAGS-${CXXFLAGS-'@CXXFLAGS@'}}
    FCFLAGS=${AM_TESTSUITE_FCFLAGS-${FCFLAGS-'@FCFLAGS@'}}
    FFLAGS=${AM_TESTSUITE_FFLAGS-${FFLAGS-'@FFLAGS@'}}
    CPPFLAGS=${AM_TESTSUITE_CPPFLAGS-${CPPFLAGS-'@CPPFLAGS@'}}
    
    # GNU compilers and their flags.
    GNU_CC=${AM_TESTSUITE_GNU_CC-${GNU_CC-'@GNU_CC@'}}
    GNU_CXX=${AM_TESTSUITE_GNU_CXX-${GNU_CXX-'@GNU_CXX@'}}
    GNU_F77=${AM_TESTSUITE_GNU_F77-${GNU_F77-'@GNU_F77@'}}
    GNU_FC=${AM_TESTSUITE_GNU_FC-${GNU_FC-'@GNU_FC@'}}
    GNU_FFLAGS=${AM_TESTSUITE_GNU_FFLAGS-${GNU_FFLAGS-'@GNU_FFLAGS@'}}
    GNU_FCFLAGS=${AM_TESTSUITE_GNU_FCFLAGS-${GNU_FCFLAGS-'@GNU_FCFLAGS@'}}
    GNU_CXXFLAGS=${AM_TESTSUITE_GNU_CXXFLAGS-${GNU_CXXFLAGS-'@GNU_CXXFLAGS@'}}
    GNU_CFLAGS=${AM_TESTSUITE_GNU_CFLAGS-${GNU_CFLAGS-'@GNU_CFLAGS@'}}
    GNU_GCJ=${AM_TESTSUITE_GNU_GCJ-${GNU_GCJ-'@GNU_GCJ@'}}
    GNU_GCJFLAGS=${AM_TESTSUITE_GNU_GCJFLAGS-${GNU_GCJFLAGS-'@GNU_GCJFLAGS@'}}
    
    # No all versions of Tex support '--version', so we use a configure
    # check to decide if tex is available.  This decision is embodied in
    # this variable.
    TEX=${AM_TESTSUITE_TEX-'@TEX@'}
    
    # The amount we should wait after modifying files depends on the platform.
    # For instance, Windows '95, '98 and ME have 2-second granularity
    # and can be up to 3 seconds in the future w.r.t. the system clock.
    sleep='sleep @MODIFICATION_DELAY@'
    
    # An old timestamp that can be given to a file, in "touch -t" format.
    # The time stamp should be portable to all file systems of interest.
    # Just for fun, choose the exact time of the announcement of the GNU project
    # in UTC; see <http://www.gnu.org/gnu/initial-announcement.html>.
    old_timestamp=198309271735.59
    
    # Make our wrapper script (or installed scripts, if running under
    # "installcheck") accessible by default.  And avoid to uselessly
    # extend $PATH multiple times if this file is sourced multiple times.
    case $PATH in
      $am_bindir$PATH_SEPARATOR*) ;;
      *) PATH=$am_bindir$PATH_SEPARATOR$PATH;;
    esac
    
    # Make our helper script accessible by default.
    PATH=$am_testauxdir$PATH_SEPARATOR$PATH
    
    export PATH