gtester: Run tests only once on 'make check'
authorRyan Lortie <desrt@desrt.ca>
Fri, 6 Aug 2010 19:28:58 +0000 (15:28 -0400)
committerRyan Lortie <desrt@desrt.ca>
Fri, 6 Aug 2010 19:28:58 +0000 (15:28 -0400)
The gtester makefile runs 'make test' on 'make check' and also recurses
on 'make test'.  automake recurses on 'make check'.

This means that every level of recursive make that we go through results
in the tests running twice as many times.  If you type 'make check' at
the toplevel, for example, tests in gio/tests/ run 4 times.

Fix that by introducing a 'test-nonrecursive' target and using that one
from 'make check'.  'make test', 'make test-report', etc. are still
recursive.

Makefile.decl

index eb8237a..3b344eb 100644 (file)
@@ -11,15 +11,20 @@ TEST_PROGS =
 ### testing rules
 
 # test: run all tests in cwd and subdirs
-test:  ${TEST_PROGS}
+test: test-nonrecursive
 if OS_UNIX
-       @test -z "${TEST_PROGS}" || MALLOC_CHECK_=2 MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) ${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 OS_UNIX
+       @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
@@ -60,7 +65,7 @@ test-report perf-report full-report:  ${TEST_PROGS}
            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
+.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
@@ -83,5 +88,5 @@ lcov-clean:
        -rm -rf glib-lcov.info glib-lcov
        -find -name '*.gcda' -print | xargs rm
 
-# run make test as part of make check
-check-local: test
+# run tests in cwd as part of make check
+check-local: test-nonrecursive