1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- SCRIPTS_DIR := buildroot/share/scripts
- CONTAINER_RT_BIN := docker
- CONTAINER_RT_OPTS := --rm -v $(PWD):/code -v platformio-cache:/root/.platformio
- CONTAINER_IMAGE := marlin-dev
- help:
- @echo "Tasks for local development:"
- @echo "* tests-single-ci: Run a single test from inside the CI"
- @echo "* tests-single-local: Run a single test locally"
- @echo "* tests-single-local-docker: Run a single test locally, using docker"
- @echo "* tests-all-local: Run all tests locally"
- @echo "* tests-all-local-docker: Run all tests locally, using docker"
- @echo "* setup-local-docker: Build the local docker image"
- @echo ""
- @echo "Options for testing:"
- @echo " TEST_TARGET Set when running tests-single-*, to select the"
- @echo " test. If you set it to ALL it will run all "
- @echo " tests, but some of them are broken: use "
- @echo " tests-all-* instead to run only the ones that "
- @echo " run on GitHub CI"
- @echo " ONLY_TEST Limit tests to only those that contain this, or"
- @echo " the index of the test (1-based)"
- @echo " VERBOSE_PLATFORMIO If you want the full PIO output, set any value"
- @echo " GIT_RESET_HARD Used by CI: reset all local changes. WARNING:"
- @echo " THIS WILL UNDO ANY CHANGES YOU'VE MADE!"
- .PHONY: help
- tests-single-ci:
- export GIT_RESET_HARD=true
- $(MAKE) tests-single-local TEST_TARGET=$(TEST_TARGET)
- .PHONY: tests-single-ci
- tests-single-local:
- @if ! test -n "$(TEST_TARGET)" ; then echo "***ERROR*** Set TEST_TARGET=<your-module> or use make tests-all-local" ; return 1; fi
- export PATH="./buildroot/bin/:./buildroot/tests/:${PATH}" \
- && export VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) \
- && run_tests . $(TEST_TARGET) "$(ONLY_TEST)"
- .PHONY: tests-single-local
- tests-single-local-docker:
- @if ! test -n "$(TEST_TARGET)" ; then echo "***ERROR*** Set TEST_TARGET=<your-module> or use make tests-all-local-docker" ; return 1; fi
- @if ! $(CONTAINER_RT_BIN) images -q $(CONTAINER_IMAGE) > /dev/null ; then $(MAKE) setup-local-docker ; fi
- $(CONTAINER_RT_BIN) run $(CONTAINER_RT_OPTS) $(CONTAINER_IMAGE) $(MAKE) tests-single-local TEST_TARGET=$(TEST_TARGET) VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) GIT_RESET_HARD=$(GIT_RESET_HARD) ONLY_TEST="$(ONLY_TEST)"
- .PHONY: tests-single-local-docker
- tests-all-local:
- export PATH="./buildroot/bin/:./buildroot/tests/:${PATH}" \
- && export VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) \
- && for TEST_TARGET in $$($(SCRIPTS_DIR)/get_test_targets.py) ; do echo "Running tests for $$TEST_TARGET" ; run_tests . $$TEST_TARGET ; done
- .PHONY: tests-all-local
- tests-all-local-docker:
- @if ! $(CONTAINER_RT_BIN) images -q $(CONTAINER_IMAGE) > /dev/null ; then $(MAKE) setup-local-docker ; fi
- $(CONTAINER_RT_BIN) run $(CONTAINER_RT_OPTS) $(CONTAINER_IMAGE) $(MAKE) tests-all-local VERBOSE_PLATFORMIO=$(VERBOSE_PLATFORMIO) GIT_RESET_HARD=$(GIT_RESET_HARD)
- .PHONY: tests-all-local-docker
- setup-local-docker:
- $(CONTAINER_RT_BIN) build -t $(CONTAINER_IMAGE) -f docker/Dockerfile .
- .PHONY: setup-local-docker
|