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.
This commit is contained in:
Carl Worth 2010-09-17 12:10:54 -07:00
parent 7a72999fad
commit e6ba2c63c9
5 changed files with 36 additions and 56 deletions

View file

@ -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 \

View 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

View 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 .. $@

7
test/Makefile.local Normal file
View file

@ -0,0 +1,7 @@
# -*- makefile -*-
dir := test
.PHONY: test
test: all
@${dir}/notmuch-test

View file

@ -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