mirror of
https://github.com/openstenoproject/qmk
synced 2024-11-09 10:13:29 +00:00
Basic framework for parsing test targets
This commit is contained in:
parent
cfddec17d5
commit
6d7cd639a5
3 changed files with 34 additions and 1 deletions
16
Makefile
16
Makefile
|
@ -224,6 +224,8 @@ define PARSE_RULE
|
||||||
# PARSE_ALL_KEYBOARDS
|
# PARSE_ALL_KEYBOARDS
|
||||||
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkb),true)
|
ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,allkb),true)
|
||||||
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
$$(eval $$(call PARSE_ALL_KEYBOARDS))
|
||||||
|
else ifeq ($$(call COMPARE_AND_REMOVE_FROM_RULE,test),true)
|
||||||
|
$$(eval $$(call PARSE_TEST))
|
||||||
# If the rule starts with the name of a known keyboard, then continue
|
# If the rule starts with the name of a known keyboard, then continue
|
||||||
# the parsing from PARSE_KEYBOARD
|
# the parsing from PARSE_KEYBOARD
|
||||||
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true)
|
else ifeq ($$(call TRY_TO_MATCH_RULE_FROM_LIST,$$(KEYBOARDS)),true)
|
||||||
|
@ -396,6 +398,16 @@ define PARSE_ALL_KEYMAPS
|
||||||
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS)))
|
$$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS)))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define PARSE_TEST
|
||||||
|
TEST_NAME := $$(firstword $$(subst -, ,$$(RULE)))
|
||||||
|
TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME)-,,$$(RULE)))
|
||||||
|
MATCHED_TESTS := $$(foreach TEST,$$(TEST_LIST),$$(if $$(findstring $$(TEST_NAME),$$(TEST)),$$(TEST),))
|
||||||
|
$$(info Test name $$(TEST_NAME))
|
||||||
|
$$(info Test target $$(TEST_TARGET))
|
||||||
|
$$(info $$(MATCHED_TESTS))
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
# Set the silent mode depending on if we are trying to compile multiple keyboards or not
|
# Set the silent mode depending on if we are trying to compile multiple keyboards or not
|
||||||
# By default it's on in that case, but it can be overriden by specifying silent=false
|
# By default it's on in that case, but it can be overriden by specifying silent=false
|
||||||
# from the command line
|
# from the command line
|
||||||
|
@ -459,4 +471,6 @@ all-keyboards-defaults: allkb-allsp-default
|
||||||
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
|
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags 2>/dev/null || date +"%Y-%m-%d-%H:%M:%S")
|
||||||
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
|
BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S")
|
||||||
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
|
$(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h)
|
||||||
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
|
$(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h)
|
||||||
|
|
||||||
|
include $(ROOT_DIR)/testlist.mk
|
6
quantum/serial_link/tests/testlist.mk
Normal file
6
quantum/serial_link/tests/testlist.mk
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
TEST_LIST +=\
|
||||||
|
serial_link_byte_stuffer\
|
||||||
|
serial_link_frame_router\
|
||||||
|
serial_link_frame_validator\
|
||||||
|
serial_link_transport\
|
||||||
|
serial_link_triple_buffered_object
|
13
testlist.mk
Normal file
13
testlist.mk
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
include $(ROOT_DIR)/quantum/serial_link/tests/testlist.mk
|
||||||
|
|
||||||
|
define VALIDATE_TEST_LIST
|
||||||
|
ifneq ($1,)
|
||||||
|
ifeq ($$(findstring -,$1),-)
|
||||||
|
$$(error Test names can't contain '-', but '$1' does)
|
||||||
|
else
|
||||||
|
$$(eval $$(call VALIDATE_TEST_LIST,$$(firstword $2),$$(wordlist 2,9999,$2)))
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call VALIDATE_TEST_LIST,$(firstword $(TEST_LIST)),$(wordlist 2,9999,$(TEST_LIST))))
|
Loading…
Reference in a new issue