aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2021-06-01 23:49:13 +0200
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2021-06-01 23:49:13 +0200
commit1418d5cc62f2f888aed5c033fa3fd9f50eb67235 (patch)
treea6300c63f2361b01c259fb104b33007b24473488 /Makefile
parent7941b3f57d39db8eef93bd75bc62d49da33824fb (diff)
downloaddns-1418d5cc62f2f888aed5c033fa3fd9f50eb67235.tar.gz
Add Check framework for unit tests
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile25
1 files changed, 18 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index c642e1f..dd64148 100644
--- a/Makefile
+++ b/Makefile
@@ -4,13 +4,18 @@ LDFLAGS = -lm
BUILDDIR = build
SOURCEDIR = src
OBJECTDIR = obj
+TESTDIR = tests
-OUTPUT = dns
+OUTPUT = dnsd
SRCS = $(wildcard $(SOURCEDIR)/*.c)
OBJS = $(SRCS:.c=.o)
OBJ = $(OBJS:$(SOURCEDIR)/%=$(OBJECTDIR)/%)
+TESTS = $(wildcard $(TESTDIR)/*.c)
+TOBJS = $(TESTS:.c=.o)
+TSUBS = $(filter-out $(OBJECTDIR)/main.o,$(OBJ))
+
build: dir $(OBJ)
@echo [LD] $(OBJ)
@$(CC) $(CFLAGS) -o $(BUILDDIR)/$(OUTPUT) $(OBJ) $(LDFLAGS)
@@ -18,9 +23,11 @@ build: dir $(OBJ)
debug: CFLAGS += -g -D _DEBUG
debug: build;
-test: CFLAGS += -D _TEST
-test: clean debug
- $(BUILDDIR)/$(OUTPUT)
+test: LDFLAGS += -lcheck
+test: clean dir $(TOBJS) $(TSUBS)
+ @echo [LD] $(TOBJS) $(TSUBS)
+ @$(CC) $(CFLAGS) -I $(SOURCEDIR) -o $(TESTDIR)/run $(TOBJS) $(TSUBS) $(LDFLAGS)
+ @$(TESTDIR)/run
dir:
@mkdir -p $(OBJECTDIR)
@@ -30,6 +37,10 @@ $(OBJECTDIR)/%.o: $(SOURCEDIR)/%.c
@echo [CC] $<
@$(CC) $(CFLAGS) -c $< -o $@
+$(TESTDIR)/%.o: $(TESTDIR)/%.c
+ @echo [TEST] $<
+ @$(CC) $(CFLAGS) -I $(SOURCEDIR) -c $< -o $@
+
#sudo setcap 'cap_net_bind_service=+ep' /path/to/prog
#to allow port access
run: build
@@ -37,9 +48,9 @@ run: build
.PHONY: clean
clean:
- @echo [RM] $(OBJ)
- @echo [RM] $(BUILDDIR)/$(OUTPUT)
- @rm -df $(OBJ)
+ @echo [RM] $(OBJ) $(TOBJS)
+ @echo [RM] $(BUILDDIR)/$(OUTPUT) $(TESTDIR)/run
+ @rm -df $(OBJ) $(TOBJS) $(TESTDIR)/run
@rm -Rdf $(BUILDDIR) $(OBJECTDIR)
.PHONY: all