Edit

kc3-lang/automake/lib/am/check.am

Branch :

  • Show log

    Commit

  • Author : Ralf Wildenhues
    Date : 2006-09-01 16:10:21
    Hash : f4c3177a
    Message : * lib/am/check.am (check-TESTS): Fix matching of XFAIL_TESTS against currently running test for the first and last element of $(TESTS): add spacing so Solaris make does VPATH expansion on these words, too. * tests/check6.test: Update.

  • lib/am/check.am
  • ## automake - create Makefile.in from Makefile.am
    ## Copyright (C) 2001, 2003, 2006 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, write to the Free Software
    ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    ## 02110-1301, USA.
    
    .PHONY: check-TESTS
    
    check-TESTS: $(TESTS)
    	@failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[	 ]'; \
    	srcdir=$(srcdir); export srcdir; \
    ## Make sure Solaris VPATH-expands all members of this list, even
    ## the first and the last one; thus the spaces around $(TESTS)
    	list=' $(TESTS) '; \
    	if test -n "$$list"; then \
    	  for tst in $$list; do \
    	    if test -f ./$$tst; then dir=./; \
    ## Note: Solaris 2.7 seems to expand TESTS using VPATH.  That's
    ## why we also try `dir='
    	    elif test -f $$tst; then dir=; \
    	    else dir="$(srcdir)/"; fi; \
    	    if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
    ## Success
    	      all=`expr $$all + 1`; \
    	      case " $(XFAIL_TESTS) " in \
    	      *$$ws$$tst$$ws*) \
    		xpass=`expr $$xpass + 1`; \
    		failed=`expr $$failed + 1`; \
    		echo "XPASS: $$tst"; \
    	      ;; \
    	      *) \
    		echo "PASS: $$tst"; \
    	      ;; \
    	      esac; \
    	    elif test $$? -ne 77; then \
    ## Failure
    	      all=`expr $$all + 1`; \
    	      case " $(XFAIL_TESTS) " in \
    	      *$$ws$$tst$$ws*) \
    		xfail=`expr $$xfail + 1`; \
    		echo "XFAIL: $$tst"; \
    	      ;; \
    	      *) \
    		failed=`expr $$failed + 1`; \
    		echo "FAIL: $$tst"; \
    	      ;; \
    	      esac; \
    	    else \
    ## Skipped
    	      skip=`expr $$skip + 1`; \
    	      echo "SKIP: $$tst"; \
    	    fi; \
    	  done; \
    ## Prepare the banner
    	  if test "$$failed" -eq 0; then \
    	    if test "$$xfail" -eq 0; then \
    	      banner="All $$all tests passed"; \
    	    else \
    	      banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
    	    fi; \
    	  else \
    	    if test "$$xpass" -eq 0; then \
    	      banner="$$failed of $$all tests failed"; \
    	    else \
    	      banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
    	    fi; \
    	  fi; \
    ## DASHES should contain the largest line of the banner.
    	  dashes="$$banner"; \
    	  skipped=""; \
    	  if test "$$skip" -ne 0; then \
    	    skipped="($$skip tests were not run)"; \
    	    test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
    	      dashes="$$skipped"; \
    	  fi; \
    	  report=""; \
    	  if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
    	    report="Please report to $(PACKAGE_BUGREPORT)"; \
    	    test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
    	      dashes="$$report"; \
    	  fi; \
    	  dashes=`echo "$$dashes" | sed s/./=/g`; \
    	  echo "$$dashes"; \
    	  echo "$$banner"; \
    	  test -z "$$skipped" || echo "$$skipped"; \
    	  test -z "$$report" || echo "$$report"; \
    	  echo "$$dashes"; \
    	  test "$$failed" -eq 0; \
    	else :; fi