diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 53 |
1 files changed, 38 insertions, 15 deletions
@@ -168,10 +168,30 @@ eunit: export BUILDDIR = $(shell pwd) eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config eunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell pwd)/bin/couchjs $(shell pwd)/share/server/main.js eunit: couch - @$(REBAR) setup_eunit 2> /dev/null + @COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR) setup_eunit 2> /dev/null @for dir in $(subdirs); do \ - $(REBAR) -r eunit $(EUNIT_OPTS) apps=$$dir || exit 1; \ - done + tries=0; \ + while true; do \ + COUCHDB_VERSION=$(COUCHDB_VERSION) COUCHDB_GIT_SHA=$(COUCHDB_GIT_SHA) $(REBAR) -r eunit $(EUNIT_OPTS) apps=$$dir ; \ + if [ $$? -eq 0 ]; then \ + break; \ + else \ + tries=$$((tries+1)); \ + [ $$tries -gt 2 ] && exit 1; \ + fi \ + done \ + done + + +.PHONY: exunit +# target: exunit - Run ExUnit tests +exunit: export BUILDDIR = $(shell pwd) +exunit: export MIX_ENV=test +exunit: export ERL_LIBS = $(shell pwd)/src +exunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config +exunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell pwd)/bin/couchjs $(shell pwd)/share/server/main.js +exunit: couch elixir-init setup-eunit elixir-check-formatted elixir-credo + @mix test --trace $(EXUNIT_OPTS) setup-eunit: export BUILDDIR = $(shell pwd) setup-eunit: export ERL_AFLAGS = -config $(shell pwd)/rel/files/eunit.config @@ -212,34 +232,37 @@ python-black-update: .venv/bin/black . dev/run rel/overlay/bin/couchup test/javascript/run .PHONY: elixir +elixir: export MIX_ENV=integration elixir: elixir-init elixir-check-formatted elixir-credo devclean - @dev/run -a adm:pass --no-eval 'test/elixir/run --exclude without_quorum_test --exclude with_quorum_test $(EXUNIT_OPTS)' + @dev/run -a adm:pass --no-eval 'mix test --trace --exclude without_quorum_test --exclude with_quorum_test $(EXUNIT_OPTS)' .PHONY: elixir-init elixir-init: - @cd test/elixir && mix local.rebar --force && mix local.hex --force && mix deps.get + @mix local.rebar --force && mix local.hex --force && mix deps.get .PHONY: elixir-cluster-without-quorum -elixir-cluster-without-quorum: elixir-check-formatted elixir-credo devclean +elixir-cluster-without-quorum: export MIX_ENV=integration +elixir-cluster-without-quorum: elixir-init elixir-check-formatted elixir-credo devclean @dev/run -n 3 -q -a adm:pass \ --degrade-cluster 2 \ - --no-eval 'test/elixir/run --only without_quorum_test $(EXUNIT_OPTS)' + --no-eval 'mix test --trace --only without_quorum_test $(EXUNIT_OPTS)' .PHONY: elixir-cluster-with-quorum -elixir-cluster-with-quorum: elixir-check-formatted elixir-credo devclean +elixir-cluster-with-quorum: export MIX_ENV=integration +elixir-cluster-with-quorum: elixir-init elixir-check-formatted elixir-credo devclean @dev/run -n 3 -q -a adm:pass \ --degrade-cluster 1 \ - --no-eval 'test/elixir/run --only with_quorum_test $(EXUNIT_OPTS)' + --no-eval 'mix test --trace --only with_quorum_test $(EXUNIT_OPTS)' .PHONY: elixir-check-formatted -elixir-check-formatted: - @cd test/elixir/ && mix format --check-formatted +elixir-check-formatted: elixir-init + @mix format --check-formatted # Credo is a static code analysis tool for Elixir. # We use it in our tests .PHONY: elixir-credo -elixir-credo: - @cd test/elixir/ && mix credo +elixir-credo: elixir-init + @mix credo .PHONY: javascript # target: javascript - Run JavaScript test suites or specific ones defined by suites option @@ -347,8 +370,8 @@ build-test: mango-test: devclean all @cd src/mango && \ python3 -m venv .venv && \ - .venv/bin/pip3 install -r requirements.txt - @cd src/mango && ../../dev/run -n 1 --admin=testuser:testpass .venv/bin/nosetests + .venv/bin/python3 -m pip install -r requirements.txt + @cd src/mango && ../../dev/run -n 1 --admin=testuser:testpass '.venv/bin/python3 -m nose' ################################################################################ # Developing |