Files
app-ethereum/tests/unit/Makefile
2024-03-27 14:43:15 +01:00

43 lines
1.8 KiB
Makefile

MAKEFLAGS += --no-print-directory
RM ?= rm -f
ECHO = `which echo`
ifneq (,$(findstring xterm,${TERM}))
GREEN := $(shell tput -Txterm setaf 2)
RED := $(shell tput -Txterm setaf 1)
CYAN := $(shell tput -Txterm setaf 6)
RESET := $(shell tput -Txterm sgr0)
else
GREEN := ""
RED := ""
RESET := ""
endif
BUILD_DIRECTORY = $(realpath build/)
DIRECTORY_BUILD = build
all:
@cmake -B ${DIRECTORY_BUILD} -H.
@make -C ${DIRECTORY_BUILD}
@CTEST_OUTPUT_ON_FAILURE=1 make -C ${DIRECTORY_BUILD} test
coverage: all
@lcov --directory . -b "${BUILD_DIRECTORY}" --capture --initial -o coverage.base
@lcov --rc lcov_branch_coverage=1 --directory . -b "${BUILD_DIRECTORY}" --capture -o coverage.capture
@lcov --directory . -b "${BUILD_DIRECTORY}" --add-tracefile coverage.base --add-tracefile coverage.capture -o coverage.info
@lcov --directory . -b "${BUILD_DIRECTORY}" --remove coverage.info '*/unit-tests/*' -o coverage.info --remove coverage.info '*/build/_deps/cmocka-src/src/*'
@$(ECHO) -e "${GREEN}[ OK ]${RESET} Generated 'coverage.info'."
@genhtml coverage.info -o coverage
@if [ -f coverage.base ]; then $(ECHO) -e "${RED}[ RM ]${RESET}" coverage.base && $(RM) -r coverage.base ; fi;
@if [ -f coverage.capture ]; then $(ECHO) -e "${RED}[ RM ]${RESET}" coverage.capture && $(RM) -r coverage.capture ; fi;
@$(ECHO) -e "${CYAN}[ REDIRECT ]${RESET}" `realpath coverage/index.html` && xdg-open `realpath coverage/index.html`
clean:
@if [ -d ${DIRECTORY_BUILD} ]; then $(ECHO) -e "${RED}[ RM ]${RESET}" ${DIRECTORY_BUILD} && $(RM) -r ${DIRECTORY_BUILD} ; fi;
@if [ -d coverage ]; then $(ECHO) -e "${RED}[ RM ]${RESET}" coverage && $(RM) -r coverage ; fi;
@if [ -f coverage.info ]; then $(ECHO) -e "${RED}[ RM ]${RESET}" coverage.info && $(RM) -r coverage.info ; fi;
.PHONY: all coverage clean