# A component is buildable if it has a component.mk makefile in it
COMPONENT_PATHS_BUILDABLE := $(foreach cp,$(COMPONENT_PATHS),$(if $(wildcard $(cp)/component.mk),$(cp)))
-# If TEST_COMPONENTS is set on the command line, create variables for building unit tests
+# If TESTS_ALL set to 1, set TEST_COMPONENTS to all components
+ifeq ($(TESTS_ALL),1)
+TEST_COMPONENTS := $(COMPONENTS)
+endif
+
+# If TEST_COMPONENTS is set, create variables for building unit tests
ifdef TEST_COMPONENTS
-TEST_COMPONENT_PATHS := $(foreach comp,$(TEST_COMPONENTS),$(IDF_PATH)/components/$(comp)/test)
-TEST_COMPONENT_NAMES := $(foreach comp,$(TEST_COMPONENTS),$(comp)_test)
+override TEST_COMPONENTS := $(foreach comp,$(TEST_COMPONENTS),$(wildcard $(IDF_PATH)/components/$(comp)/test))
+TEST_COMPONENT_PATHS := $(TEST_COMPONENTS)
+TEST_COMPONENT_NAMES := $(foreach comp,$(TEST_COMPONENTS),$(lastword $(subst /, ,$(dir $(comp))))_test)
endif
# Initialise project-wide variables which can be added to by
* Set IDF_PATH environment variable to point to the path to the esp-idf top-level directory.
* Change into `tools/unit-test-app` directory
* `make menuconfig` to configure the Unit Test App.
-* `make TEST_COMPONENTS=` with `TEST_COMPONENTS` set to names of the components to be included in the test app.
+* `make TEST_COMPONENTS=` with `TEST_COMPONENTS` set to names of the components to be included in the test app. Or `make TESTS_ALL=1` to build the test app with all the tests for components having `test` subdirectory.
* Follow the printed instructions to flash, or run `make flash`.