+# 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
-# "test: wvtest" rule to config.target.
+# 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)))
+$(eval $(call omk_pass_template,wvtest-pass,$$(LOCAL_BUILD_DIR),,$(wvtest_SCRIPTS)$(wvtest_PROGRAMS)))
-# Usage: $(call wvtest_template,<script-name>)
+# Usage: $(call wvtest_template,<shell command>)
define wvtest_template
wvtest-pass-local: wvtest-run-$(1)
.PHONY: wvtest-run-$(1)
wvtest-run-$(1):
- mkdir -p $(1).wvtest
- cd $(1).wvtest && $(SOURCES_DIR)/$(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 and also manually directly from the $(SOURCES_DIR), i.e.
-# include wvtest.sh like this:
+# 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,$(script))))
+$(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))))