DEVELHELP ?= 0 include ../Makefile.tests_common BOARD_INSUFFICIENT_MEMORY := airfy-beacon \ arduino-duemilanove \ arduino-mega2560 \ arduino-mkr1000 \ arduino-mkrfox1200 \ arduino-mkrzero \ arduino-uno \ arduino-zero \ avsextrem \ b-l072z-lrwan1 \ bluepill \ calliope-mini \ cc2538dk \ cc2650-launchpad \ cc2650stk \ chronos \ ek-lm4f120xl \ feather-m0 \ ikea-tradfri \ limifrog-v1 maple-mini \ mbed_lpc1768 \ mega-xplained \ microbit \ msb-430 \ msb-430h \ msba2 \ nrf51dongle \ nrf6310 \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-f303k8 \ nucleo-l031k6 \ nucleo-l432kc \ nucleo-f030r8 \ nucleo-f070rb \ nucleo-f072rb \ nucleo-f091rc \ nucleo-f103rb \ nucleo-f302r8 \ nucleo-f334r8 \ nucleo-f410rb \ nucleo-l053r8 \ nucleo-l073rz \ nucleo-l433rc \ nz32-sc151 \ opencm904 \ openmote \ openmote-cc2538 \ pba-d-01-kw2x \ remote-pa \ remote-reva \ remote-revb \ saml21-xpro \ samd21-xpro \ samr21-xpro \ seeeduino_arch-pro \ slstk3401a \ sltb001a \ slwstk6220a \ sodaq-autonomo \ sodaq-explorer \ spark-core \ stk3600 \ stm32f0discovery \ stm32f3discovery \ teensy31 \ telosb \ waspmote-pro \ wsn430-v1_3b \ wsn430-v1_4 \ yunjia-nrf51822 z1 USEMODULE += embunit ifeq (, $(filter tests-%, $(MAKECMDGOALS))) # the $(dir) Makefile function leaves a trailing slash after the directory # name, therefore we use patsubst instead. UNIT_TESTS := $(patsubst %/Makefile,%,$(wildcard tests-*/Makefile)) else UNIT_TESTS := $(filter tests-%, $(MAKECMDGOALS)) endif ARM7_BOARDS := avsextrem \ msba2 \ # DISABLE_TEST_FOR_ARM7 := tests-relic tests-cpp_% ARM_CORTEX_M_BOARDS := airfy-beacon \ arduino-due \ arduino-mkr1000 \ arduino-mkrfox1200 \ arduino-mkrzero \ arduino-zero \ b-l072z-lrwan1 \ bluepill \ calliope-mini \ cc2538dk \ cc2650-launchpad \ cc2650stk \ ek-lm4f120xl \ f4vi1 \ feather-m0 \ fox \ frdm-k22f \ frdm-k64f \ frdm-kw41z \ ikea-tradfri \ iotlab-a8-m3 \ iotlab-m3 \ limifrog-v1 \ maple-mini \ mbed_lpc1768 \ microbit \ msbiot \ mulle \ nrf51dongle \ nrf52840dk \ nrf52dk \ nrf6310 \ nucleo-f207zg \ nucleo-f303ze \ nucleo-f412zg \ nucleo-f413zh \ nucleo-f429zi \ nucleo-f446ze \ nucleo-f722ze \ nucleo-f746zg \ nucleo-f767zi \ nucleo-f031k6 \ nucleo-f042k6 \ nucleo-f303k8 \ nucleo-l031k6 \ nucleo-l432kc \ nucleo-f030r8 \ nucleo-f070rb \ nucleo-f072rb \ nucleo-f091rc \ nucleo-f103rb \ nucleo-f302r8 \ nucleo-f303re \ nucleo-f334r8 \ nucleo-f401re \ nucleo-f410rb \ nucleo-f411re \ nucleo-f446re \ nucleo-l053r8 \ nucleo-l073rz \ nucleo-l152re \ nucleo-l433rc \ nucleo-l476rg \ nucleo-l496zg \ nz32-sc151 \ opencm904 \ openmote-cc2538 \ pba-d-01-kw2x \ remote-pa \ remote-reva \ remote-revb \ samd21-xpro \ saml21-xpro \ samr21-xpro \ seeeduino_arch-pro \ slstk3401a \ sltb001a \ slwstk6000b \ slwstk6220a \ sodaq-autonomo \ sodaq-explorer \ spark-core \ stk3600 \ stk3700 \ stm32f0discovery \ stm32f3discovery \ stm32f4discovery \ stm32f769i-disco \ udoo \ yunjia-nrf51822 \ # DISABLE_TEST_FOR_ARM_CORTEX_M := tests-relic AVR_BOARDS := arduino-duemilanove \ arduino-mega2560 \ arduino-uno \ waspmote-pro \ # DISABLE_TEST_FOR_AVR := tests-relic tests-cpp_% MSP430_BOARDS := chronos \ msb-430 \ msb-430h \ telosb \ wsn430-v1_3b \ wsn430-v1_4 \ z1 \ # DISABLE_TEST_FOR_MSP430 := tests-relic tests-spiffs tests-cpp_% ifneq (, $(filter $(ARM7_BOARDS), $(BOARD))) UNIT_TESTS := $(filter-out $(DISABLE_TEST_FOR_ARM7), $(UNIT_TESTS)) endif ifneq (, $(filter $(ARM_CORTEX_M_BOARDS), $(BOARD))) UNIT_TESTS := $(filter-out $(DISABLE_TEST_FOR_ARM_CORTEX_M), $(UNIT_TESTS)) endif ifneq (, $(filter $(AVR_BOARDS), $(BOARD))) UNIT_TESTS := $(filter-out $(DISABLE_TEST_FOR_AVR), $(UNIT_TESTS)) endif ifneq (, $(filter $(MSP430_BOARDS), $(BOARD))) UNIT_TESTS := $(filter-out $(DISABLE_TEST_FOR_MSP430), $(UNIT_TESTS)) endif ifneq (,$(filter tests-cpp_%, $(UNIT_TESTS))) # We need to tell the build system to use the C++ compiler for linking export FEATURES_REQUIRED += cpp export CPPMIX := 1 endif ifneq (, $(filter $(AVR_BOARDS), $(BOARD))) LARGE_STACK_TESTS += tests-qDSA endif LARGE_STACK_TESTS += tests-hacl LARGE_STACK_TESTS += tests-libcose LARGE_STACK_TESTS += tests-tweetnacl ifneq (,$(filter $(LARGE_STACK_TESTS), $(UNIT_TESTS))) CFLAGS += -DTHREAD_STACKSIZE_MAIN=\(4*THREAD_STACKSIZE_DEFAULT+THREAD_EXTRA_STACKSIZE_PRINTF\) endif DISABLE_MODULE += auto_init # Pull in `Makefile.include`s from the test suites: -include $(UNIT_TESTS:%=$(RIOTBASE)/tests/unittests/%/Makefile.include) DIRS += $(UNIT_TESTS) BASELIBS += $(UNIT_TESTS:%=$(BINDIR)/%.a) INCLUDES += -I$(RIOTBASE)/tests/unittests/common # list of boards to run CI tests on TEST_ON_CI_WHITELIST += all include $(RIOTBASE)/Makefile.include .PHONY: $(UNIT_TESTS) all: info-unittests: @echo $(UNIT_TESTS) $(UNIT_TESTS): all charCOMMA := , ifeq (, $(UNIT_TESTS)) CFLAGS += -DNO_TEST_SUITES $(warning There was no test suite specified!) else CFLAGS += -DTEST_SUITES='$(subst $() $(),$(charCOMMA),$(UNIT_TESTS:tests-%=%))' endif test: ./tests/01-run.py