aboutsummaryrefslogtreecommitdiffstats
path: root/tests/Makefile
diff options
context:
space:
mode:
authorTharre <tharre3@gmail.com>2015-07-13 15:01:47 +0200
committerTharre <tharre3@gmail.com>2015-07-13 15:33:43 +0200
commit54d6f97c895490e2699e560990b37df95f3d1d87 (patch)
tree902d7cfcb839195f84dce0507645e5cc6d6256f5 /tests/Makefile
parent3493dac92c9da21823b39b53b808745859fb9950 (diff)
downloadredo-54d6f97c895490e2699e560990b37df95f3d1d87.tar.gz
redo-54d6f97c895490e2699e560990b37df95f3d1d87.tar.xz
redo-54d6f97c895490e2699e560990b37df95f3d1d87.zip
Replace custom test-suite with sharness
This should make the hole test-suite a bit more standard (by outputting TAP), as well as making it easier to test redo in a controlled environment. In contrast to bats, sharness requires no external dependencies.
Diffstat (limited to 'tests/Makefile')
-rw-r--r--tests/Makefile60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644
index 0000000..93f4d89
--- /dev/null
+++ b/tests/Makefile
@@ -0,0 +1,60 @@
+# Run tests
+#
+# Copyright (c) 2011-2012 Mathias Lafeldt
+# Copyright (c) 2005-2012 Git project
+# Copyright (c) 2005-2012 Junio C Hamano
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see http://www.gnu.org/licenses/ .
+
+SHELL_PATH ?= $(SHELL)
+SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
+RM ?= rm -f
+PROVE ?= prove
+AGGREGATE_SCRIPT ?= aggregate-results.sh
+DEFAULT_TEST_TARGET ?= test
+
+T = $(sort $(wildcard *.t))
+
+all: $(DEFAULT_TEST_TARGET)
+
+test: pre-clean
+ $(MAKE) aggregate-results-and-cleanup
+
+prove: pre-clean
+ @echo "*** prove ***"; $(PROVE) --exec '$(SHELL_PATH_SQ)' $(PROVE_OPTS) $(T) :: $(TEST_OPTS)
+ $(MAKE) clean-except-prove-cache
+
+$(T):
+ @echo "*** $@ ***"; '$(SHELL_PATH_SQ)' $@ $(TEST_OPTS)
+
+pre-clean:
+ $(RM) -r test-results
+
+clean-except-prove-cache:
+ $(RM) -r 'trash directory'.* test-results
+
+clean: clean-except-prove-cache
+ $(RM) .prove
+
+aggregate-results-and-cleanup: $(T)
+ $(MAKE) aggregate-results
+ $(MAKE) clean
+
+aggregate-results:
+ for f in test-results/*.counts; do \
+ echo "$$f"; \
+ done | '$(SHELL_PATH_SQ)' '$(AGGREGATE_SCRIPT)'
+
+.PHONY: all test prove $(T) pre-clean clean
+.PHONY: aggregate-results-and-cleanup aggregate-results