r22602 - gnucash/trunk/test-templates - Update Makefile.decl to a newer version that works with MinGW

John Ralls jralls at code.gnucash.org
Sat Dec 1 17:41:49 EST 2012


Author: jralls
Date: 2012-12-01 17:41:49 -0500 (Sat, 01 Dec 2012)
New Revision: 22602
Trac: http://svn.gnucash.org/trac/changeset/22602

Modified:
   gnucash/trunk/test-templates/Makefile.decl
Log:
Update Makefile.decl to a newer version that works with MinGW

Modified: gnucash/trunk/test-templates/Makefile.decl
===================================================================
--- gnucash/trunk/test-templates/Makefile.decl	2012-12-01 22:41:41 UTC (rev 22601)
+++ gnucash/trunk/test-templates/Makefile.decl	2012-12-01 22:41:49 UTC (rev 22602)
@@ -1,8 +1,7 @@
-# -*- makefile-automake-mode -*-
 # GLIB - Library of useful C routines
 
-GTESTER = gtester 					# for non-GLIB packages
-GTESTER_REPORT = gtester_report 			# for non-GLIB packages
+GTESTER = gtester 			# for non-GLIB packages
+GTESTER_REPORT = gtester-report
 #GTESTER = $(top_builddir)/glib/gtester			# for the GLIB package
 #GTESTER_REPORT = $(top_builddir)/glib/gtester-report	# for the GLIB package
 
@@ -13,15 +12,20 @@
 ### testing rules
 
 # test: run all tests in cwd and subdirs
-test:	${TEST_PROGS}
+test: test-nonrecursive
 if !PLATFORM_WIN32
-	@test -z "${TEST_PROGS}" || ${GTESTER} --verbose ${TEST_PROGS}
 	@ for subdir in $(SUBDIRS) . ; do \
 	    test "$$subdir" = "." -o "$$subdir" = "po" || \
 	    ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
 	  done
 endif
 
+# test-nonrecursive: run tests only in cwd
+test-nonrecursive: ${TEST_PROGS}
+if !PLATFORM_WIN32
+	@test -z "${TEST_PROGS}" || MALLOC_CHECK_=2 MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) ${GTESTER} --verbose ${TEST_PROGS}
+endif
+
 # test-report: run tests in subdirs and generate report
 # perf-report: run tests in subdirs with -m perf and generate report
 # full-report: like test-report: with -m perf and -m slow
@@ -43,13 +47,23 @@
 	    GTESTER_LOGDIR=`mktemp -d "\`pwd\`/.testlogs-XXXXXX"`; export GTESTER_LOGDIR ; \
 	    ignore_logdir=false ; \
 	  fi ; \
+	  if test -d "$(top_srcdir)/.git" ; then \
+	    REVISION=`git describe` ; \
+	  else \
+	    REVISION=$(VERSION) ; \
+	  fi ; \
 	  for subdir in $(SUBDIRS) . ; do \
 	    test "$$subdir" = "." -o "$$subdir" = "po" || \
 	    ( cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $@ ) || exit $? ; \
 	  done ; \
 	  $$ignore_logdir || { \
-	    echo '<?xml version="1.0"?>' > $@.xml ; \
-	    echo '<report-collection>'  >> $@.xml ; \
+	    echo '<?xml version="1.0"?>'              > $@.xml ; \
+	    echo '<report-collection>'               >> $@.xml ; \
+	    echo '<info>'                            >> $@.xml ; \
+	    echo '  <package>$(PACKAGE)</package>'   >> $@.xml ; \
+	    echo '  <version>$(VERSION)</version>'   >> $@.xml ; \
+	    echo "  <revision>$$REVISION</revision>" >> $@.xml ; \
+	    echo '</info>'                           >> $@.xml ; \
 	    for lf in `ls -L "$$GTESTER_LOGDIR"/.` ; do \
 	      sed '1,1s/^<?xml\b[^>?]*?>//' <"$$GTESTER_LOGDIR"/"$$lf" >> $@.xml ; \
 	    done ; \
@@ -58,6 +72,26 @@
 	    rm -rf "$$GTESTER_LOGDIR"/ ; \
 	    ${GTESTER_REPORT} --version 2>/dev/null 1>&2 ; test "$$?" != 0 || ${GTESTER_REPORT} $@.xml >$@.html ; \
 	  }
-.PHONY: test test-report perf-report full-report
-# run make test as part of make check
-check-local: test
+.PHONY: test test-report perf-report full-report test-nonrecursive
+
+.PHONY: lcov genlcov lcov-clean
+# use recursive makes in order to ignore errors during check
+lcov:
+	-$(MAKE) $(AM_MAKEFLAGS) -k check
+	$(MAKE) $(AM_MAKEFLAGS) genlcov
+
+# we have to massage the lcov.info file slightly to hide the effect of libtool
+# placing the objects files in the .libs/ directory separate from the *.c
+# we also have to delete tests/.libs/libmoduletestplugin_*.gcda
+genlcov:
+	rm -f $(top_builddir)/tests/.libs/libmoduletestplugin_*.gcda
+	$(LTP) --directory $(top_builddir) --capture --output-file glib-lcov.info --test-name GLIB_PERF --no-checksum --compat-libtool
+	LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory glib-lcov --title "GLib Code Coverage" --legend --show-details glib-lcov.info
+
+lcov-clean:
+	-$(LTP) --directory $(top_builddir) -z
+	-rm -rf glib-lcov.info glib-lcov
+	-find -name '*.gcda' -print | xargs rm
+
+# run tests in cwd as part of make check
+check-local: test-nonrecursive



More information about the gnucash-changes mailing list