aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Sundvik <fsundvik@gmail.com>2016-08-21 16:29:54 +0300
committerFred Sundvik <fsundvik@gmail.com>2016-08-27 21:57:49 +0300
commit6d7cd639a5e4503f00162c7cfa4bc7302b82c71c (patch)
tree77c21e7a32258aaa1e2c49dd4c44983510a78045
parentcfddec17d5a4ea2c3ce9afe0f15de3fa604dee63 (diff)
downloadqmk_firmware-6d7cd639a5e4503f00162c7cfa4bc7302b82c71c.tar.gz
qmk_firmware-6d7cd639a5e4503f00162c7cfa4bc7302b82c71c.zip
Basic framework for parsing test targets
-rw-r--r--Makefile16
-rw-r--r--quantum/serial_link/tests/testlist.mk6
-rw-r--r--testlist.mk13
3 files changed, 34 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index f78cca6c6..16e90f8e4 100644
--- a/Makefile
+++ b/Makefile
@@ -224,6 +224,8 @@ define PARSE_RULE
224 # PARSE_ALL_KEYBOARDS 224 # PARSE_ALL_KEYBOARDS
225 ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkb),true) 225 ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkb),true)
226 $$(eval $$(call PARSE_ALL_KEYBOARDS)) 226 $$(eval $$(call PARSE_ALL_KEYBOARDS))
227 else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
228 $$(eval $$(call PARSE_TEST))
227 # If the rule starts with the name of a known keyboard, then continue 229 # If the rule starts with the name of a known keyboard, then continue
228 # the parsing from PARSE_KEYBOARD 230 # the parsing from PARSE_KEYBOARD
229 else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true) 231 else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true)
@@ -396,6 +398,16 @@ define PARSE_ALL_KEYMAPS
396 $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS))) 398 $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS)))
397endef 399endef
398 400
401define PARSE_TEST
402 TEST_NAME := $$(firstword $$(subst -, ,$$(RULE)))
403 TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME)-,,$$(RULE)))
404 MATCHED_TESTS := $$(foreach TEST,$$(TEST_LIST),$$(if $$(findstring $$(TEST_NAME),$$(TEST)),$$(TEST),))
405 $$(info Test name $$(TEST_NAME))
406 $$(info Test target $$(TEST_TARGET))
407 $$(info $$(MATCHED_TESTS))
408endef
409
410
399# Set the silent mode depending on if we are trying to compile multiple keyboards or not 411# Set the silent mode depending on if we are trying to compile multiple keyboards or not
400# By default it's on in that case, but it can be overriden by specifying silent=false 412# By default it's on in that case, but it can be overriden by specifying silent=false
401# from the command line 413# from the command line
@@ -459,4 +471,6 @@ all-keyboards-defaults: allkb-allsp-default
459GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S") 471GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
460BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S") 472BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
461$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h) 473$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
462$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h) \ No newline at end of file 474$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
475
476include $(ROOT_DIR)/testlist.mk \ No newline at end of file
diff --git a/quantum/serial_link/tests/testlist.mk b/quantum/serial_link/tests/testlist.mk
new file mode 100644
index 000000000..4a734b1e1
--- /dev/null
+++ b/quantum/serial_link/tests/testlist.mk
@@ -0,0 +1,6 @@
1TEST_LIST +=\
2 serial_link_byte_stuffer\
3 serial_link_frame_router\
4 serial_link_frame_validator\
5 serial_link_transport\
6 serial_link_triple_buffered_object \ No newline at end of file
diff --git a/testlist.mk b/testlist.mk
new file mode 100644
index 000000000..1884d6d3f
--- /dev/null
+++ b/testlist.mk
@@ -0,0 +1,13 @@
1include $(ROOT_DIR)/quantum/serial_link/tests/testlist.mk
2
3define VALIDATE_TEST_LIST
4 ifneq ($1,)
5 ifeq ($$(findstring -,$1),-)
6 $$(error Test names can't contain '-', but '$1' does)
7 else
8 $$(eval $$(call VALIDATE_TEST_LIST,$$(firstword $2),$$(wordlist 2,9999,$2)))
9 endif
10 endif
11endef
12
13$(eval $(call VALIDATE_TEST_LIST,$(firstword $(TEST_LIST)),$(wordlist 2,9999,$(TEST_LIST)))) \ No newline at end of file