Edit

kc3-lang/automake/CheckListOfTests.am

Branch :

  • Show log

    Commit

  • Author : Stefano Lattarini
    Date : 2010-01-30 01:23:44
    Hash : 7b6ab074
    Message : maintcheck: consistency of list of test scripts * CheckListOfTests.am: New file. (maintainer-check-list-of-tests): New target, check for consistency between list of tests defined in the including Makefile and list of tests on the filesystem. (clean-maintcheck-testslist-tmp): New rule, to clean up the temporary files that might be left around by the rules associated with the previous target. (clean-local): Depend on it. * lib/Automake/tests/Makefile.am: Include `CheckListOfTests.am'. (maintainer-check): Added dependency from the new target `maintainer-check-list-of-tests'. * tests/Makefile.am: Likewise. * Makefile.am (maintainer-check-list-of-test): New target, calling recursively into `tests/' and `lib/Automake/tests/', using ... (TEST_SUBDIRS): ... this new variable.

  • CheckListOfTests.am
  • ## -*- Automake -*-
    ##
    ## Copyright (C) 2011 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/>.
    ##
    
    ## Temporary files used in the `check-list-of-tests' target.
    am__tmk = tests-in-makefile-list.tmp
    am__tfs = tests-on-filesystem-list.tmp
    am__tdf = diff-in-tests-lists.tmp
    
    ## Check that the list of tests given in the Makefile is equal to the
    ## list of all test scripts in the Automake testsuite.
    .PHONY: maintainer-check-list-of-tests
    maintainer-check-list-of-tests:
    ## Prefer unified diffs over plain diffs, for readability.
    	 @if diff -u /dev/null /dev/null >/dev/null 2>&1; then \
    	   diff='diff -u'; \
    	 else \
    	   diff='diff'; \
    	 fi; \
    ## Determine which files are to be considered test scripts.
    ## Do not blindly look for `$(TEST_EXTENSIONS)', because the parallel
    ## testsuite driver provided by Automake allow entries in `$(TESTS)'
    ## not to be real files, but rather paramaters for the corresponding
    ## LOG_COMPILER (well, sort of).
    	 set X $(checked_test_extensions); shift; \
    	 if test $$# -eq 0; then \
    	   set X $(TEST_EXTENSIONS); shift; \
    	 fi; \
    	 if test $$# -eq 0; then \
    	   echo '$@: internal error: $$(checked_test_extensions) and' \
    	        '$$(TEST_EXTENSIONS) are both undefined or empty' >&2; \
    	   exit 255; \
    	 fi; \
    ## List of tests in Makefile.
    	 lst='$(expected_list_of_tests)'; \
    	 test -n "$$lst" || lst='$(TESTS)'; \
    	 for t in $$lst; do \
    	   echo "$$t"; \
    	 done | sort >$(am__tmk); \
    ## List of tests on filesystem.  Be careful to cater for VPATH builds too.
    	 for ext in $$*; do \
    	   ls *$$ext 2>/dev/null; \
    	   if test $(srcdir) != $(builddir); then \
    	     (cd $(srcdir) && ls *$$ext 2>/dev/null); \
    	   fi; \
    	 done | sort | uniq >$(am__tfs); \
    ## Compare the two lists, complain if they differ.
    	 if $$diff $(am__tmk) $(am__tfs) >$(am__tdf); then \
    	    result=0; \
    	 else \
    	    echo '$@: list of tests in Makefile an on filesystem differ' >&2; \
    	    echo "+ $$diff in-makefile on-filesystem" >&2; \
    	    cat $(am__tdf) >&2; \
    	    result=1; \
    	 fi; \
    	 rm -f $(am__tmk) $(am__tfs) $(am__tdf); \
    	 exit $$result;
    
    .PHONY: clean-maintcheck-testslist-tmp
    clean-local: clean-maintcheck-testslist-tmp
    clean-maintcheck-testslist-tmp:
    	rm -f $(am__tmk) $(am__tfs) $(am__tdf)