Skip to content
Snippets Groups Projects
Commit 59644e9b authored by Oskar Viljasaar's avatar Oskar Viljasaar
Browse files

Unit and functional tests working

parent f022a57c
Branches
No related tags found
No related merge requests found
Pipeline #4351 passed
......@@ -19,3 +19,5 @@ qosmngr
*.xml
.DS_Store
include/version.h
test/cmocka/unit_test_qos
test/cmocka/functional_test_qos
......@@ -3,43 +3,61 @@ include common.mk
QOSMNGR_LIB=libqosmngr.so
QOSMNGR_LIB_DIR ?= $(shell dirname $(PWD))
QOSMNGR_LDFLAGS = -lqosmngr -L$(QOSMNGR_LIB_DIR)
GCOV=gcov
CODECOVERAGE_SRC = src/qosmngr.c
CODECOVERAGE_SRC = qosmngr.c
PROG = $(PROJECT_TOPLEVEL)/qosmngr
SHARED_LIB = $(PROJECT_TOPLEVEL)/libqosmngr.so
OBJS = main.o qosmngr.o
subdirs ?= src
PROG_CFLAGS = $(CFLAGS) -I$(INCLUDE_DIR) -Wall -fstrict-aliasing
PROG_LDFLAGS = $(LDFLAGS)
PROG_LIBS = $(COMMON_LDFLAGS) -lgcov
.PHONY: all clean
all clean:
@for i in $(subdirs) ; do [ -d $$i ] && $(MAKE) -C $$i $@; done
all: version $(PROG)
qosmngr:
$(MAKE) all -C src
$(PROG): $(INCLUDE_DIR)/version.h $(OBJS)
$(CC) $(PROG_LDFLAGS) -o $@ $^ $(PROG_LIBS)
${QOSMNGR_LIB}:
$(MAKE) CFLAGS+=-fPIC lib -C src
$(CC) $(PROG_LDFLAGS) -shared -o $@ $^ $(PROG_LIBS)
test: ${QOSMNGR_LIB}
$(SHARED_LIB): $(INCLUDE_DIR)/version.h $(OBJS)
unit-test: coverage
$(MAKE) -C test/cmocka unit-test QOSMNGR_LIB_DIR=$(PWD)
version: $(INCLUDE_DIR)/version.h
functional-test: coverage
$(MAKE) -C test/cmocka functional-test QOSMNGR_LIB_DIR=$(PWD)
$(INCLUDE_DIR)/version.h: $(PROJECT_TOPLEVEL)/VERSION
@(dirty=$(shell (git status --porcelain | grep -q .) && echo -dirty); \
[ -f $(PROJECT_TOPLEVEL)/VERSION ] && basever=$(shell cat $(PROJECT_TOPLEVEL)/VERSION) || \
basever=Unknown; \
xver=$(shell date +'%y%V%u-%H%M'); \
echo "const char *qosmngr_base_version = \"$$basever\";" > $@; \
echo "const char *qosmngr_xtra_version = \"$$xver$$dirty\";" >> $@; \
)
test: ${QOSMNGR_LIB}
coverage: CFLAGS += -g -O0 -fprofile-arcs -ftest-coverage -fPIC
coverage: CFLAGS += -g -O0 -fprofile-arcs -ftest-coverage -fPIC
coverage: LDFLAGS += --coverage
coverage: test qosmngr
coverage: test $(PROG)
$(foreach testprog, $(CODECOVERAGE_SRC), $(GCOV) $(testprog);)
unit-test: test
$(MAKE) -C test/cmocka unit-test
functional-test: test
$(MAKE) -C test/cmocka functional-test
%.o: %.c
$(CC) $(PROG_CFLAGS) $(FPIC) -c -o $@ $<
clean:
rm -f *.o libqosmngr.so $(PROG)
rm -f *.o $(SHARED_LIB) $(PROG) $(INCLUDE_DIR)/version.h
rm -f *.xml *.html
find -name '*.gcda' -exec rm {} -fv \;
find -name '*.gcno' -exec rm {} -fv \;
find -name '*.gcov' -exec rm {} -fv \;
make -C test/cmocka clean
make -C src clean
......@@ -4,3 +4,7 @@ INCLUDE_DIR = $(PROJECT_TOPLEVEL)/include
# Common compiler options
CC=gcc # gcc || clang
COMMON_LDFLAGS = -luci -lubus -lubox -ljson-c -lblobmsg_json -lnl-genl-3 -lnl-3 -lqos
QOSMNGR_LIB_DIR ?= $(shell dirname $(PWD))
QOSMNGR_LDFLAGS = -lqosmngr -L$(QOSMNGR_LIB_DIR)
File moved
File moved
include ../common.mk
PROG = $(PROJECT_TOPLEVEL)/qosmngr
SHARED_LIB = $(PROJECT_TOPLEVEL)/libqosmngr.so
OBJS = main.o qosmngr.o
PROG_CFLAGS = $(CFLAGS) -I$(INCLUDE_DIR) -Wall -fstrict-aliasing
PROG_LDFLAGS = $(LDFLAGS)
PROG_LIBS = -luci -lubus -lubox -ljson-c -lblobmsg_json -lnl-genl-3 -lnl-3 -lgcov -leasy -lqos
%.o: %.c
$(CC) $(PROG_CFLAGS) $(FPIC) -c -o $@ $<
.PHONY: clean
all: $(PROG)
lib: $(SHARED_LIB)
$(SHARED_LIB): $(INCLUDE_DIR)/version.h $(OBJS)
$(CC) $(PROG_LDFLAGS) -shared -o $@ $^ $(PROG_LIBS)
version: $(INCLUDE_DIR)/version.h
$(INCLUDE_DIR)/version.h: $(PROJECT_TOPLEVEL)/VERSION
@(dirty=$(shell (git status --porcelain | grep -q .) && echo -dirty); \
[ -f $(PROJECT_TOPLEVEL)/VERSION ] && basever=$(shell cat $(PROJECT_TOPLEVEL)/VERSION) || \
basever=Unknown; \
xver=$(shell date +'%y%V%u-%H%M'); \
echo "const char *qosmngr_base_version = \"$$basever\";" > $@; \
echo "const char *qosmngr_xtra_version = \"$$xver$$dirty\";" >> $@; \
)
$(PROG): $(INCLUDE_DIR)/version.h $(OBJS)
$(CC) $(PROG_LDFLAGS) -o $@ $^ $(PROG_LIBS)
clean:
rm -f *.o $(SHARED_LIB) $(PROG) $(INCLUDE_DIR)/version.h
include ../common.mk
GCOV = gcov
CODECOVERAGE_SRC = qosmngr.c
all:
\ No newline at end of file
include ../../common.mk
CC = gcc
QOSMNGR_LIB_DIR ?= $(shell dirname $(PWD))
QOSMNGR_LIB = -lqosmngr -L$(QOSMNGR_LIB_DIR)
CMOCKA_LIB = -l cmocka
LIBS = $(QOSMNGR_LIB) $(CMOCKA_LIB) -lqos -pthread -luci -lubus -lubox -ljson-c -lblobmsg_json -lnl-genl-3 -lnl-3 -ljson-validator -ljson-schema-validator -ljson-editor
CFLAGS = -g -Wall -I$(INCLUDE_DIR)
LDFLAGS = $(LIBS) -Wl,-rpath=$(QOSMNGR_LIB_DIR) -I$(QOSMNGR_LIB_DIR)
QOSMNGR_LIB_DIR = $(PROJECT_TOPLEVEL)
CMOCKA_LIB = -lcmocka
LIBS = $(QOSMNGR_LDFLAGS) $(CMOCKA_LIB) -lpthread $(COMMON_LDFLAGS) -ljson-validator -ljson-schema-validator -ljson-editor
CFLAGS = -g -Wall -O0 -fprofile-arcs -ftest-coverage -fPIC -I$(INCLUDE_DIR)
LDFLAGS = $(LIBS) -Wl,-rpath=$(QOSMNGR_LIB_DIR) -I$(QOSMNGR_LIB_DIR) --coverage
UNIT_TESTS = unit_test_qos
FUNCTIONAL_TESTS = functional_test_qos
......@@ -21,7 +19,7 @@ unit_test_qos: unit_test_qos.o
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
functional_test_qos: functional_test_qos.o
$(CC) -o $@ $^ $(LDFLAGS)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
unit-test: $(UNIT_TESTS)
$(foreach testprog, $(UNIT_TESTS), sudo $(VALGRIND) ./$(testprog);)
......@@ -32,4 +30,4 @@ functional-test: $(FUNCTIONAL_TESTS)
.PHONY: clean
clean:
rm $(UNIT_TESTS) *.o -fv
rm $(UNIT_TESTS) $(FUNCTIONAL_TESTS) *.o *.gcno *.gcda -fv
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment