aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2010-09-17 12:10:54 -0700
committerGravatar Carl Worth <cworth@cworth.org>2010-09-17 12:16:10 -0700
commite6ba2c63c9ba3d8999bd2f1c5eac3c5bf7c14167 (patch)
treea8f6a53119f082e84283c9d4fd924862252d6d65
parent7a72999fad235deddb1364b8667f7012939ab385 (diff)
test: Fix test suite to integrate with our non-recursive Makefile system.
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.
-rw-r--r--Makefile2
-rw-r--r--Makefile.local4
-rw-r--r--test/Makefile54
-rw-r--r--test/Makefile.local7
-rwxr-xr-xtest/notmuch-test25
5 files changed, 36 insertions, 56 deletions
diff --git a/Makefile b/Makefile
index 619392d3..7549b40d 100644
--- 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 \
diff --git a/Makefile.local b/Makefile.local
index bc61a3c1..ade84121 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -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
diff --git a/test/Makefile b/test/Makefile
index 7a29eaa1..b6859eac 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -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
index 00000000..a9548441
--- /dev/null
+++ b/test/Makefile.local
@@ -0,0 +1,7 @@
+# -*- makefile -*-
+
+dir := test
+
+.PHONY: test
+test: all
+ @${dir}/notmuch-test
diff --git a/test/notmuch-test b/test/notmuch-test
index 5c066ed1..8ff21cc6 100755
--- a/test/notmuch-test
+++ b/test/notmuch-test
@@ -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