test: Fix test suite to integrate with our non-recursive Makefile system.
authorCarl Worth <cworth@cworth.org>
Fri, 17 Sep 2010 19:10:54 +0000 (12:10 -0700)
committerCarl Worth <cworth@cworth.org>
Fri, 17 Sep 2010 19:16:10 +0000 (12:16 -0700)
This avoids "make test" emitting messages from three (3!) recursive
invocations of make. We change the invocations of the tests themselves
to occur directly from the shell script rather than having the shell
script invoke make again and using wildcards in the Makefile.

Makefile
Makefile.local
test/Makefile
test/Makefile.local [new file with mode: 0644]
test/notmuch-test

index 619392d39562aa1f6553e762b91b01106f689061..7549b40d171fdde519697e5fe3d67de307ddbf20 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
 all:
 
 # List all subdirectories here. Each contains its own Makefile.local
-subdirs = compat completion emacs lib
+subdirs = compat completion emacs lib test
 
 # We make all targets depend on the Makefiles themselves.
 global_deps = Makefile Makefile.config Makefile.local \
index bc61a3c108f0db972987a6e5aa0ab6dc0262f1a6..ade84121fcb887e6c017bc977f063c17c52c0a8f 100644 (file)
@@ -61,10 +61,6 @@ ifeq ($(shell cat .first-build-message 2>/dev/null),)
 endif
 endif
 
-.PHONY: test
-test: all
-       @./test/notmuch-test
-
 $(TAR_FILE):
        git archive --format=tar --prefix=$(PACKAGE)-$(VERSION)/ HEAD > $(TAR_FILE).tmp
        echo $(VERSION) > version.tmp
index 7a29eaa13a9386f81c9da96ce92c5e9cd209c6b8..b6859eacc7f87c70cae3f2bb320e48158d146af3 100644 (file)
@@ -1,49 +1,7 @@
-# Run tests
-#
-# Copyright (c) 2005 Junio C Hamano
-#
+# See Makfefile.local for the list of files to be compiled in this
+# directory.
+all:
+       $(MAKE) -C .. all
 
--include ../config.mak
-
-#GIT_TEST_OPTS=--verbose --debug
-SHELL=/bin/bash
-SHELL_PATH ?= $(SHELL)
-TAR ?= $(TAR)
-RM ?= rm -f
-
-# Shell quote;
-SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
-
-T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
-TSVN = $(wildcard t91[0-9][0-9]-*.sh)
-
-all: pre-clean
-       $(MAKE) aggregate-results-and-cleanup
-
-$(T):
-       @echo "*** $@ ***"; GIT_CONFIG=.git/config '$(SHELL_PATH_SQ)' $@ $(GIT_TEST_OPTS)
-
-pre-clean:
-       $(RM) -r test-results
-
-clean:
-       $(RM) -r 'trash directory'.* test-results
-       $(RM) t????/cvsroot/CVSROOT/?*
-       $(RM) -r valgrind/bin
-
-aggregate-results-and-cleanup: $(T)
-       $(MAKE) aggregate-results
-       $(MAKE) clean
-
-aggregate-results:
-       '$(SHELL_PATH_SQ)' ./aggregate-results.sh test-results/t*-*
-
-# we can test NO_OPTIMIZE_COMMITS independently of LC_ALL
-full-svn-test:
-       $(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=1 LC_ALL=C
-       $(MAKE) $(TSVN) GIT_SVN_NO_OPTIMIZE_COMMITS=0 LC_ALL=en_US.UTF-8
-
-valgrind:
-       GIT_TEST_OPTS=--valgrind $(MAKE)
-
-.PHONY: pre-clean $(T) aggregate-results clean valgrind
+.DEFAULT:
+       $(MAKE) -C .. $@
diff --git a/test/Makefile.local b/test/Makefile.local
new file mode 100644 (file)
index 0000000..a954844
--- /dev/null
@@ -0,0 +1,7 @@
+# -*- makefile -*-
+
+dir := test
+
+.PHONY: test
+test:  all
+       @${dir}/notmuch-test
index 5c066ed19becdeea05c70a5a624342f2e2075bf4..8ff21cc687386e959f343d1a410483067517df28 100755 (executable)
@@ -1,4 +1,23 @@
-#!/bin/bash
+#!/bin/sh
 
-cd $(dirname $0)
-make
+# Run tests
+#
+# Copyright (c) 2005 Junio C Hamano
+#
+# Adapted from a Makefile to a shell script by Carl Worth (2010)
+
+cd $(dirname "$0")
+
+# Clean up any results from a previous run
+rm -r test-results >/dev/null 2>/dev/null
+
+# Run the tests
+for test in t[0-9][0-9][0-9][0-9]*.sh; do
+       ./"$test"
+done
+
+# Report results
+./aggregate-results.sh test-results/t*-*
+
+# Clean up
+rm -r test-results