# wvtest_SCRIPTS .. list of scripts producing wvtest output # wvtest_PROGRAMS .. list of the testing programs producing wvtest output ifndef WVTEST_LIBRARY WVTEST_LIBRARY = wvtest endif # Documentation: wvtest_PROGRAMS is amost equivalent to test_PROGRAMS. # The two differences are that the program is automatically linked # with $(WVTEST_LIBRARY) and it is run during "make wvtest". test_PROGRAMS += $(wvtest_PROGRAMS) # Documentation: If your project uses wvtest, it is recomended to put # the "test: wvtest" rule to config.target. wvtest: $(Q)$(MAKERULES_DIR)/wvtestrun $(MAKE) wvtest-pass .PHONY: wvtest $(eval $(call omk_pass_template,wvtest-pass,$$(LOCAL_BUILD_DIR),,$(wvtest_SCRIPTS)$(wvtest_PROGRAMS))) # Usage: $(call wvtest_template,) define wvtest_template wvtest-pass-local: wvtest-run-$(1) .PHONY: wvtest-run-$(1) wvtest-run-$(1): $(Q)echo "Testing \"Run $(1)\" in Makefile.rules:" $(Q)mkdir -p $(1).wvtest $(Q)cd $(1).wvtest && \ PATH=$$(USER_BIN_DIR):$$$$PATH LD_LIBRARY_PATH=$$(USER_LIB_DIR):$$$$LD_LIBRARY_PATH \ $(1) $(notdir $(1))_LIBS += $$(WVTEST_LIBRARY) endef # Documentation: Write the test so, that it can be run from arbitrary # directory, i.e. in case of a script ensure that the wvtest library # is sourced like this: # # . $(dirname $0)/wvtest.sh $(foreach script,$(wvtest_SCRIPTS),$(eval $(call wvtest_template,$(SOURCES_DIR)/$(script)))) # Hack!!! USER_TESTS_DIR := $(OUTPUT_DIR)/_compiled/bin-tests $(foreach prog,$(wvtest_PROGRAMS),$(eval $(call wvtest_template,$(USER_TESTS_DIR)/$(prog))))