hs-test: added targets to makefiles to get coverage from HS tests
Type: make Change-Id: Iae7998692890264dfeea98c165617d0efa024d42 Signed-off-by: adrianvillin <avillin@cisco.com>
This commit is contained in:

committed by
Dave Wallace

parent
93974e281e
commit
8512145d7c
29
Makefile
29
Makefile
@ -245,6 +245,7 @@ help:
|
|||||||
@echo " build - build debug binaries"
|
@echo " build - build debug binaries"
|
||||||
@echo " build-release - build release binaries"
|
@echo " build-release - build release binaries"
|
||||||
@echo " build-coverity - build coverity artifacts"
|
@echo " build-coverity - build coverity artifacts"
|
||||||
|
@echo " build-vpp-gcov - build gcov vpp only"
|
||||||
@echo " rebuild - wipe and build debug binaries"
|
@echo " rebuild - wipe and build debug binaries"
|
||||||
@echo " rebuild-release - wipe and build release binaries"
|
@echo " rebuild-release - wipe and build release binaries"
|
||||||
@echo " run - run debug binary"
|
@echo " run - run debug binary"
|
||||||
@ -252,6 +253,8 @@ help:
|
|||||||
@echo " debug - run debug binary with debugger"
|
@echo " debug - run debug binary with debugger"
|
||||||
@echo " debug-release - run release binary with debugger"
|
@echo " debug-release - run release binary with debugger"
|
||||||
@echo " test - build and run tests"
|
@echo " test - build and run tests"
|
||||||
|
@echo " test-cov-hs - build and run host stack tests with coverage"
|
||||||
|
@echo " test-cov-both - build and run python and host stack tests, merge coverage data"
|
||||||
@echo " test-help - show help on test framework"
|
@echo " test-help - show help on test framework"
|
||||||
@echo " run-vat - run vpp-api-test tool"
|
@echo " run-vat - run vpp-api-test tool"
|
||||||
@echo " pkg-deb - build DEB packages"
|
@echo " pkg-deb - build DEB packages"
|
||||||
@ -440,6 +443,10 @@ rebuild: wipe build
|
|||||||
build-release: $(BR)/.deps.ok
|
build-release: $(BR)/.deps.ok
|
||||||
$(call make,$(PLATFORM),$(addsuffix -install,$(TARGETS)))
|
$(call make,$(PLATFORM),$(addsuffix -install,$(TARGETS)))
|
||||||
|
|
||||||
|
.PHONY: build-vpp-gcov
|
||||||
|
build-vpp-gcov:
|
||||||
|
$(call test,vpp_gcov)
|
||||||
|
|
||||||
.PHONY: wipe-release
|
.PHONY: wipe-release
|
||||||
wipe-release: test-wipe $(BR)/.deps.ok
|
wipe-release: test-wipe $(BR)/.deps.ok
|
||||||
$(call make,$(PLATFORM),$(addsuffix -wipe,$(TARGETS)))
|
$(call make,$(PLATFORM),$(addsuffix -wipe,$(TARGETS)))
|
||||||
@ -486,6 +493,20 @@ test-cov:
|
|||||||
$(eval TEST_GCOV=1)
|
$(eval TEST_GCOV=1)
|
||||||
$(call test,vpp_gcov,cov)
|
$(call test,vpp_gcov,cov)
|
||||||
|
|
||||||
|
.PHONY: test-cov-hs
|
||||||
|
test-cov-hs:
|
||||||
|
@make -C extras/hs-test build-cov
|
||||||
|
@make -C extras/hs-test test-cov
|
||||||
|
|
||||||
|
.PHONY: test-cov-both
|
||||||
|
test-cov-both:
|
||||||
|
@echo "Running Python, Golang tests and merging coverage reports."
|
||||||
|
find $(BR) -name '*.gcda' -delete
|
||||||
|
@make test-cov
|
||||||
|
find $(BR) -name '*.gcda' -delete
|
||||||
|
@make test-cov-hs
|
||||||
|
@make cov-merge
|
||||||
|
|
||||||
.PHONY: test-cov-build
|
.PHONY: test-cov-build
|
||||||
test-cov-build:
|
test-cov-build:
|
||||||
$(eval CC=gcc)
|
$(eval CC=gcc)
|
||||||
@ -502,6 +523,14 @@ test-cov-post:
|
|||||||
$(eval CC=gcc)
|
$(eval CC=gcc)
|
||||||
$(call test,vpp_gcov,cov-post)
|
$(call test,vpp_gcov,cov-post)
|
||||||
|
|
||||||
|
.PHONY: cov-merge
|
||||||
|
cov-merge:
|
||||||
|
@lcov --add-tracefile $(BR)/test-coverage-merged/coverage-filtered.info \
|
||||||
|
-a $(BR)/test-coverage-merged/coverage-filtered1.info -o $(BR)/test-coverage-merged/coverage-merged.info
|
||||||
|
@genhtml $(BR)/test-coverage-merged/coverage-merged.info \
|
||||||
|
--output-directory $(BR)/test-coverage-merged/html
|
||||||
|
@echo "Code coverage report is in $(BR)/test-coverage-merged/html/index.html"
|
||||||
|
|
||||||
.PHONY: test-all
|
.PHONY: test-all
|
||||||
test-all:
|
test-all:
|
||||||
$(eval EXTENDED_TESTS=1)
|
$(eval EXTENDED_TESTS=1)
|
||||||
|
@ -16,6 +16,10 @@ ifeq ($(TEST),)
|
|||||||
TEST=all
|
TEST=all
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TEST-HS),)
|
||||||
|
TEST-HS=all
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(DEBUG),)
|
ifeq ($(DEBUG),)
|
||||||
DEBUG=false
|
DEBUG=false
|
||||||
endif
|
endif
|
||||||
@ -53,6 +57,7 @@ help:
|
|||||||
@echo " test - run tests"
|
@echo " test - run tests"
|
||||||
@echo " test-debug - run tests (vpp debug image)"
|
@echo " test-debug - run tests (vpp debug image)"
|
||||||
@echo " build - build test infra"
|
@echo " build - build test infra"
|
||||||
|
@echo " build-cov - coverage build of VPP and Docker images"
|
||||||
@echo " build-debug - build test infra (vpp debug image)"
|
@echo " build-debug - build test infra (vpp debug image)"
|
||||||
@echo " build-go - just build golang files"
|
@echo " build-go - just build golang files"
|
||||||
@echo " fixstyle - format .go source files"
|
@echo " fixstyle - format .go source files"
|
||||||
@ -88,6 +93,10 @@ build-vpp-release:
|
|||||||
build-vpp-debug:
|
build-vpp-debug:
|
||||||
@make -C ../.. build
|
@make -C ../.. build
|
||||||
|
|
||||||
|
.PHONY: build-vpp-gcov
|
||||||
|
build-vpp-gcov:
|
||||||
|
@make -C ../.. build-vpp-gcov
|
||||||
|
|
||||||
.build.ok: build
|
.build.ok: build
|
||||||
@touch .build.ok
|
@touch .build.ok
|
||||||
|
|
||||||
@ -112,6 +121,14 @@ test-debug: .deps.ok .build_debug.ok
|
|||||||
--vppsrc=$(VPPSRC) --parallel=$(PARALLEL) --repeat=$(REPEAT)
|
--vppsrc=$(VPPSRC) --parallel=$(PARALLEL) --repeat=$(REPEAT)
|
||||||
@bash ./script/compress.sh
|
@bash ./script/compress.sh
|
||||||
|
|
||||||
|
.PHONY: test-cov
|
||||||
|
test-cov: .deps.ok .build.ok
|
||||||
|
-bash ./test --persist=$(PERSIST) --verbose=$(VERBOSE) \
|
||||||
|
--unconfigure=$(UNCONFIGURE) --debug=$(DEBUG) --test=$(TEST-HS) --cpus=$(CPUS) \
|
||||||
|
--vppsrc=$(VPPSRC)
|
||||||
|
@make -C ../.. test-cov-post HS_TEST=1
|
||||||
|
@bash ./script/compress.sh
|
||||||
|
|
||||||
.PHONY: build-go
|
.PHONY: build-go
|
||||||
build-go:
|
build-go:
|
||||||
go build ./tools/http_server
|
go build ./tools/http_server
|
||||||
@ -122,6 +139,12 @@ build: .deps.ok build-vpp-release build-go
|
|||||||
bash ./script/build_hst.sh release
|
bash ./script/build_hst.sh release
|
||||||
@touch .build.ok
|
@touch .build.ok
|
||||||
|
|
||||||
|
.PHONY: build-cov
|
||||||
|
build-cov: .deps.ok build-vpp-gcov build-go
|
||||||
|
@rm -f .build.vpp
|
||||||
|
bash ./script/build_hst.sh gcov
|
||||||
|
@touch .build.vpp
|
||||||
|
|
||||||
.PHONY: build-debug
|
.PHONY: build-debug
|
||||||
build-debug: .deps.ok build-vpp-debug build-go
|
build-debug: .deps.ok build-vpp-debug build-go
|
||||||
@rm -f .build.ok
|
@rm -f .build.ok
|
||||||
|
@ -21,6 +21,8 @@ export VPP_WS=../..
|
|||||||
|
|
||||||
if [ "$1" == "debug" ]; then
|
if [ "$1" == "debug" ]; then
|
||||||
VPP_BUILD_ROOT=${VPP_WS}/build-root/build-vpp_debug-native/vpp
|
VPP_BUILD_ROOT=${VPP_WS}/build-root/build-vpp_debug-native/vpp
|
||||||
|
elif [ "$1" == "gcov" ]; then
|
||||||
|
VPP_BUILD_ROOT=${VPP_WS}/build-root/build-vpp_gcov-native/vpp
|
||||||
else
|
else
|
||||||
VPP_BUILD_ROOT=${VPP_WS}/build-root/build-vpp-native/vpp
|
VPP_BUILD_ROOT=${VPP_WS}/build-root/build-vpp-native/vpp
|
||||||
fi
|
fi
|
||||||
|
@ -354,12 +354,12 @@ cov-prep: test-dep
|
|||||||
cov-post: wipe-cov $(BUILD_COV_DIR)
|
cov-post: wipe-cov $(BUILD_COV_DIR)
|
||||||
@lcov --capture \
|
@lcov --capture \
|
||||||
--directory $(VPP_BUILD_DIR) \
|
--directory $(VPP_BUILD_DIR) \
|
||||||
--output-file $(BUILD_COV_DIR)/coverage.info
|
--output-file $(BUILD_COV_DIR)/coverage$(HS_TEST).info
|
||||||
@test -z "$(EXTERN_COV_DIR)" || \
|
@test -z "$(EXTERN_COV_DIR)" || \
|
||||||
lcov --capture \
|
lcov --capture \
|
||||||
--directory $(EXTERN_COV_DIR) \
|
--directory $(EXTERN_COV_DIR) \
|
||||||
--output-file $(BUILD_COV_DIR)/extern-coverage.info
|
--output-file $(BUILD_COV_DIR)/extern-coverage$(HS_TEST).info
|
||||||
@lcov --remove $(BUILD_COV_DIR)/coverage.info \
|
@lcov --remove $(BUILD_COV_DIR)/coverage$(HS_TEST).info \
|
||||||
"/usr/include/*" "*/build-root/*" "/opt/*" "/usr/lib/*" \
|
"/usr/include/*" "*/build-root/*" "/opt/*" "/usr/lib/*" \
|
||||||
"*_test.*" "*vat*" "*rdma*" "*/vpp-api/client/*" "*/plugins/af_packet/*" \
|
"*_test.*" "*vat*" "*rdma*" "*/vpp-api/client/*" "*/plugins/af_packet/*" \
|
||||||
"*/plugins/af_xdp/*" "*/plugins/avf/*" "*/plugins/dma_intel/*" \
|
"*/plugins/af_xdp/*" "*/plugins/avf/*" "*/plugins/dma_intel/*" \
|
||||||
@ -367,15 +367,17 @@ cov-post: wipe-cov $(BUILD_COV_DIR)
|
|||||||
"*/plugins/perfmon/arm*" "*/plugins/perfmon/intel/*" "*/vlib/vmbus/*" \
|
"*/plugins/perfmon/arm*" "*/plugins/perfmon/intel/*" "*/vlib/vmbus/*" \
|
||||||
"*/vnet/dev/*" "*/plugins/dev_ena/*" "*/plugins/builtinurl/*" "*/vnet/flow/*" \
|
"*/vnet/dev/*" "*/plugins/dev_ena/*" "*/plugins/builtinurl/*" "*/vnet/flow/*" \
|
||||||
"*/plugins/http_static/builtinurl/*" "*/plugins/dev_iavf/*" \
|
"*/plugins/http_static/builtinurl/*" "*/plugins/dev_iavf/*" \
|
||||||
-o $(BUILD_COV_DIR)/coverage-filtered.info
|
-o $(BUILD_COV_DIR)/coverage-filtered$(HS_TEST).info
|
||||||
@genhtml $(BUILD_COV_DIR)/coverage-filtered.info \
|
@genhtml $(BUILD_COV_DIR)/coverage-filtered$(HS_TEST).info \
|
||||||
--output-directory $(BUILD_COV_DIR)/html
|
--output-directory $(BUILD_COV_DIR)/html
|
||||||
@test -z "$(EXTERN_COV_DIR)" || \
|
@test -z "$(EXTERN_COV_DIR)" || \
|
||||||
genhtml $(BUILD_COV_DIR)/extern-coverage.info \
|
genhtml $(BUILD_COV_DIR)/extern-coverage$(HS_TEST).info \
|
||||||
--output-directory $(BUILD_COV_DIR)/extern-html
|
--output-directory $(BUILD_COV_DIR)/extern-html
|
||||||
@echo
|
@echo
|
||||||
@echo "Build finished. Code coverage report is in $(BUILD_COV_DIR)/html/index.html"
|
@echo "Build finished. Code coverage report is in $(BUILD_COV_DIR)/html/index.html"
|
||||||
@test -z "$(EXTERN_COV_DIR)" || echo "Code coverage report for out-of-tree objects is in $(BUILD_COV_DIR)/extern-html/index.html"
|
@test -z "$(EXTERN_COV_DIR)" || echo "Code coverage report for out-of-tree objects is in $(BUILD_COV_DIR)/extern-html/index.html"
|
||||||
|
@mkdir -p $(BR)/test-coverage-merged
|
||||||
|
@cp -f $(BUILD_COV_DIR)/coverage-filtered$(HS_TEST).info $(BR)/test-coverage-merged
|
||||||
|
|
||||||
.PHONY: cov
|
.PHONY: cov
|
||||||
cov:
|
cov:
|
||||||
@ -434,6 +436,7 @@ help:
|
|||||||
@echo " test-cov-prep - coverage phase #1 : prepare lcov"
|
@echo " test-cov-prep - coverage phase #1 : prepare lcov"
|
||||||
@echo " test-cov-build - coverage phase #2 : build gcov image & run tests against it (use TEST=)"
|
@echo " test-cov-build - coverage phase #2 : build gcov image & run tests against it (use TEST=)"
|
||||||
@echo " test-cov-post - coverage phase #3 : generate lcov html report"
|
@echo " test-cov-post - coverage phase #3 : generate lcov html report"
|
||||||
|
@echo " test-cov-both - generate and merge code coverage report for Python and Golang tests"
|
||||||
@echo " test-all - build and run functional and extended tests"
|
@echo " test-all - build and run functional and extended tests"
|
||||||
@echo " test-all-debug - build and run functional and extended tests (debug build)"
|
@echo " test-all-debug - build and run functional and extended tests (debug build)"
|
||||||
@echo " test-all-cov - generate code coverage report for functional and extended tests"
|
@echo " test-all-cov - generate code coverage report for functional and extended tests"
|
||||||
|
Reference in New Issue
Block a user