mirror of https://github.com/rusefi/isotp-c.git
Compile with coverage calculation, put objects in a subdir.
This commit is contained in:
parent
64af0554cb
commit
ca2035c4a4
|
@ -2,3 +2,5 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
*~
|
*~
|
||||||
*.bin
|
*.bin
|
||||||
|
*.gcno
|
||||||
|
build
|
||||||
|
|
34
Makefile
34
Makefile
|
@ -1,10 +1,11 @@
|
||||||
CC = gcc
|
CC = gcc
|
||||||
INCLUDES = -Isrc -Ideps/bitfield-c/src
|
INCLUDES = -Isrc -Ideps/bitfield-c/src
|
||||||
CFLAGS = $(INCLUDES) -c -w -Wall -Werror -g -ggdb -std=c99
|
CFLAGS = $(INCLUDES) -c -w -Wall -Werror -g -ggdb -std=gnu++0x -coverage
|
||||||
LDFLAGS =
|
LDFLAGS = -coverage -lm
|
||||||
LDLIBS = -lcheck
|
LDLIBS = -lcheck
|
||||||
|
|
||||||
TEST_DIR = tests
|
TEST_DIR = tests
|
||||||
|
TEST_OBJDIR = build
|
||||||
|
|
||||||
# Guard against \r\n line endings only in Cygwin
|
# Guard against \r\n line endings only in Cygwin
|
||||||
OSTYPE := $(shell uname)
|
OSTYPE := $(shell uname)
|
||||||
|
@ -15,24 +16,41 @@ ifneq ($(OSTYPE),Darwin)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
LIBS_PATH = deps
|
||||||
SRC = $(wildcard src/**/*.c)
|
SRC = $(wildcard src/**/*.c)
|
||||||
SRC += $(wildcard deps/bitfield-c/src/**/*.c)
|
SRC += $(wildcard deps/bitfield-c/src/**/*.c)
|
||||||
OBJS = $(SRC:.c=.o)
|
OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(SRC:.c=.o))
|
||||||
TEST_SRC = $(wildcard $(TEST_DIR)/test_*.c)
|
TEST_SRC = $(wildcard $(TEST_DIR)/test_*.c)
|
||||||
TESTS=$(patsubst %.c,%.bin,$(TEST_SRC))
|
TESTS=$(patsubst %.c,$(TEST_OBJDIR)/%.bin,$(TEST_SRC))
|
||||||
TEST_SUPPORT_SRC = $(TEST_DIR)/common.c
|
TEST_SUPPORT_SRC = $(TEST_DIR)/common.c
|
||||||
TEST_SUPPORT_OBJS = $(TEST_SUPPORT_SRC:.c=.o)
|
TEST_SUPPORT_OBJS = $(patsubst %,$(TEST_OBJDIR)/%,$(TEST_SUPPORT_SRC:.c=.o))
|
||||||
|
|
||||||
all: $(OBJS)
|
all: $(OBJS)
|
||||||
|
|
||||||
test: $(TESTS)
|
test: $(TESTS)
|
||||||
@set -o $(TEST_SET_OPTS) >/dev/null 2>&1
|
@set -o $(TEST_SET_OPTS) >/dev/null 2>&1
|
||||||
@export SHELLOPTS
|
@export SHELLOPTS
|
||||||
@sh runtests.sh $(TEST_DIR)
|
@sh runtests.sh $(TEST_OBJDIR)/$(TEST_DIR)
|
||||||
|
|
||||||
$(TEST_DIR)/%.bin: $(TEST_DIR)/%.o $(OBJS) $(TEST_SUPPORT_OBJS)
|
COVERAGE_INFO_FILENAME = coverage.info
|
||||||
|
COVERAGE_INFO_PATH = $(TEST_OBJDIR)/$(COVERAGE_INFO_FILENAME)
|
||||||
|
coverage:
|
||||||
|
@lcov --base-directory . --directory src --zerocounters -q
|
||||||
|
@make clean
|
||||||
|
@make test
|
||||||
|
@lcov --base-directory . --directory $(TEST_OBJDIR) -c -o $(TEST_OBJDIR)/coverage.info
|
||||||
|
@lcov --remove $(COVERAGE_INFO_PATH) "$(LIBS_PATH)/bitfield-c/*" -o $(COVERAGE_INFO_PATH)
|
||||||
|
@genhtml -o $(TEST_OBJDIR)/coverage -t "isotp-c test coverage" --num-spaces 4 $(COVERAGE_INFO_PATH)
|
||||||
|
@$(BROWSER) $(TEST_OBJDIR)/coverage/index.html
|
||||||
|
@echo "$(GREEN)Coverage information generated in $(TEST_OBJDIR)/coverage/index.html.$(COLOR_RESET)"
|
||||||
|
|
||||||
|
$(TEST_OBJDIR)/%.o: %.c
|
||||||
|
@mkdir -p $(dir $@)
|
||||||
|
$(CC) $(CFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $<
|
||||||
|
|
||||||
|
$(TEST_OBJDIR)/%.bin: $(TEST_OBJDIR)/%.o $(OBJS) $(TEST_SUPPORT_OBJS)
|
||||||
@mkdir -p $(dir $@)
|
@mkdir -p $(dir $@)
|
||||||
$(CC) $(LDFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $^ $(LDLIBS)
|
$(CC) $(LDFLAGS) $(CC_SYMBOLS) $(INCLUDES) -o $@ $^ $(LDLIBS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf **/*.o $(TEST_DIR)/*.bin
|
rm -rf $(TEST_OBJDIR)
|
||||||
|
|
Loading…
Reference in New Issue