aboutsummaryrefslogtreecommitdiff
path: root/ccan/Makefile.check
diff options
context:
space:
mode:
Diffstat (limited to 'ccan/Makefile.check')
-rw-r--r--ccan/Makefile.check43
1 files changed, 43 insertions, 0 deletions
diff --git a/ccan/Makefile.check b/ccan/Makefile.check
new file mode 100644
index 0000000..767b338
--- /dev/null
+++ b/ccan/Makefile.check
@@ -0,0 +1,43 @@
+CCAN_TEST_SRC := $(wildcard ccan/*/test/run*.c)
+
+LCOV_EXCLUDE += $(CCAN_TEST_SRC) ccan/list/test/helper.c
+
+CCAN_TEST := $(CCAN_TEST_SRC:%.c=%)
+
+
+.PHONY: $(CCAN_TEST:%=%-gcov-run) ccan-check
+
+ccan-check: $(CCAN_TEST:%=%-check)
+
+check: ccan-check $(CCAN_TEST:%=%-gcov-run)
+
+.PHONY: ccan-coverage
+
+coverage: ccan-coverage
+
+ccan-coverage: $(CCAN_TEST:%=%-gcov-run)
+
+$(CCAN_TEST:%=%-gcov-run) : %-run: %
+ $(eval LCOV_DIRS += -d $(dir $<) )
+ $(call Q, TEST-COVERAGE , (cd $(dir $<); GCOV_PREFIX_STRIP=`(c=0; while [ "\`pwd\`" != '/' ]; do cd ..; c=\`expr 1 + $$c\`; done; echo $$c)` ./$(notdir $<) ), $< )
+
+$(CCAN_TEST:%=%-check) : %-check: %
+ $(call Q, RUN-TEST , $(VALGRIND) $<, $<)
+
+$(CCAN_TEST) : % : %.c
+ $(call Q, HOSTCC ,$(HOSTCC) $(HOSTCFLAGS) -O0 -g -I . -Iccan/ -o $@ $<,$<)
+
+$(CCAN_TEST:%=%-gcov): %-gcov : %.c
+ $(call Q, HOSTCC , (cd $(dir $<); $(HOSTCC) $(HOSTCFLAGS) -fprofile-arcs -ftest-coverage -O0 -g -I $(shell pwd) -I$(shell pwd)/./ccan/ -pg -o $(notdir $@) $(notdir $<) ), $<)
+
+-include $(wildcard ccan/*/test/*.d)
+
+clean: ccan-test-clean
+
+ccan-test-clean:
+ $(RM) -f $(CCAN_TEST) \
+ $(CCAN_TEST:%=%-gcov) \
+ $(CCAN_TEST:%=%.d) \
+ $(CCAN_TEST:%=%.o) \
+ $(CCAN_TEST:%=%-gcov.gcda) \
+ $(CCAN_TEST:%=%-gcov.gcno) \ No newline at end of file