Makefile
branchmercurial-3.8
changeset 2111 ec04eb4d2c6e
parent 2040 934d70e3be97
child 2269 b838c069bf4e
--- a/Makefile	Tue Feb 28 17:08:14 2017 +0100
+++ b/Makefile	Tue Mar 14 14:52:56 2017 -0700
@@ -1,5 +1,6 @@
 VERSION=$(shell python setup.py --version)
 
+PYTHON=python
 
 help:
 	@echo 'Commonly used make targets:'
@@ -15,3 +16,42 @@
 	mv hg-evolve-$(VERSION) ../mercurial-evolve_$(VERSION).orig
 	cp -r debian/ ../mercurial-evolve_$(VERSION).orig/
 	@cd ../mercurial-evolve_$(VERSION).orig && echo 'debian build directory ready at' `pwd`
+
+install-home:
+	$(PYTHON) setup.py install --home="$(HOME)" --prefix="" --force
+
+# test targets
+TESTFLAGS ?= $(shell echo $$HGTESTFLAGS)
+
+HGTESTS=$(HGROOT)/tests
+
+help:
+	@echo 'Commonly used make targets:'
+	@echo '  tests              - run all tests in the automatic test suite'
+	@echo '  all-version-tests - run all tests against many hg versions'
+	@echo '  tests-%s           - run all tests in the specified hg version'
+
+all: help
+
+_check_hgroot:
+	ifeq ($(HGROOT),)
+	  $(error HGROOT is not set to the root of the hg source tree)
+	endif
+
+tests: _check_hgroot
+	cd tests && $(PYTHON) $(HGTESTS)/run-tests.py $(TESTFLAGS)
+
+# /!\ run outside of the compatibility branch output test will likely fails
+
+test-%: _check_hgroot
+	cd tests && $(PYTHON) $(HGTESTS)/run-tests.py $(TESTFLAGS) $@
+
+tests-%: _check_hgroot
+	hg -R $(HGROOT) checkout $$(echo $@ | sed s/tests-//) && \
+	(cd $(HGROOT) ; $(MAKE) clean ) && \
+	cd tests && $(PYTHON) $(HGTESTS)/run-tests.py $(TESTFLAGS)
+
+# build a script to extract declared version
+all-version-tests: tests-@
+
+.PHONY: tests all-version-tests