]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Add makefile for compiling and running unit tests
authorFred Sundvik <fsundvik@gmail.com>
Sat, 13 Feb 2016 22:20:14 +0000 (00:20 +0200)
committerFred Sundvik <fsundvik@gmail.com>
Sat, 13 Feb 2016 22:20:14 +0000 (00:20 +0200)
serial_link.mk
tests/Makefile [new file with mode: 0644]

index 51d33fcb41c0c1df603f2945919d772207fa5454..8e8de807f5ea29fea930cfac556518bd69e68297 100644 (file)
@@ -2,6 +2,7 @@ CGREEN_LIB = $(BUILDDIR)/cgreen/build-c/src/libcgreen.a
 
 .phony testserial:
 testserial: $(CGREEN_LIB)
+       make -C $(SERIAL_DIR)/tests BUILDDIR=../../$(BUILDDIR)
 
 CGREEN_DIR = "$(CURDIR)/$(SERIAL_DIR)/cgreen/cgreen"
 CGREEN_BUILD_DIR = "$(CURDIR)/$(BUILDDIR)/cgreen"
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644 (file)
index 0000000..239e9f6
--- /dev/null
@@ -0,0 +1,49 @@
+CC = gcc
+CFLAGS = 
+INCLUDES = -I.
+LDFLAGS = -L$(BUILDDIR)/cgreen/build-c/src
+LDLIBS = -lcgreen
+UNITOBJ = $(BUILDDIR)/testserial/unitobj
+DEPDIR = $(BUILDDIR)/testserial/unit.d
+UNITEXE = $(BUILDDIR)/testserial/unitexe
+DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.Td
+EXT = 
+UNAME := $(shell uname)
+ifneq (, $(findstring mingw, $(UNAME)))
+       EXT += exe
+endif
+ifneq (, $(findstring cygwin, $(UNAME)))
+       EXT += exe
+endif
+       
+SRC = $(wildcard *.c)
+EXE = $(patsubst %.c, $(UNITEXE)/%$(EXT), $(SRC))
+$(shell mkdir -p $(DEPDIR) >/dev/null)
+
+test: $(EXE)
+       @for f in $^; do \
+       echo "++++++++++++++++++"; \
+       echo "Running unit tests"; \
+       echo $$(basename $$f); \
+       echo "++++++++++++++++++"; \
+       echo ""; \
+       $$f || exit 1; \
+       echo ""; \
+       echo "******************"; \
+       echo ""; \
+       done
+
+$(UNITEXE)/%$(EXT): $(UNITOBJ)/%.o
+       mkdir -p $(UNITEXE)
+       $(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
+
+$(UNITOBJ)/%.o : %.c
+$(UNITOBJ)/%.o: %.c $(DEPDIR)/%.d
+       mkdir -p $(UNITOBJ)
+       $(CC) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
+       mv -f $(DEPDIR)/$*.Td $(DEPDIR)/$*.d
+       
+$(DEPDIR)/%.d: ;
+.PRECIOUS: $(DEPDIR)/%.d
+
+-include $(patsubst %,$(DEPDIR)/%.d,$(basename $(SRC).c))
\ No newline at end of file