@@ -692,14 +692,6 @@ module_block.h: $(SRC_PATH)/scripts/modules/module_block.py config-host.mak
$(addprefix $(SRC_PATH)/,$(patsubst %.mo,%.c,$(block-obj-m))), \
"GEN","$@")
-ifdef CONFIG_GCOV
-.PHONY: clean-coverage
-clean-coverage:
- $(call quiet-command, \
- find . \( -name '*.gcda' -o -name '*.gcov' \) -type f -exec rm {} +, \
- "CLEAN", "coverage files")
-endif
-
clean: recurse-clean
# avoid old build problems by removing potentially incorrect old files
rm -f config.mak op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h
@@ -1170,9 +1162,6 @@ endif
echo '')
@echo 'Cleaning targets:'
@echo ' clean - Remove most generated files but keep the config'
-ifdef CONFIG_GCOV
- @echo ' clean-coverage - Remove coverage files'
-endif
@echo ' distclean - Remove all generated files'
@echo ' dist - Build a distributable tarball'
@echo ''
@@ -1184,9 +1173,6 @@ endif
@echo 'Documentation targets:'
@echo ' html info pdf txt'
@echo ' - Build documentation in specified format'
-ifdef CONFIG_GCOV
- @echo ' coverage-report - Create code coverage report'
-endif
@echo ''
ifdef CONFIG_WIN32
@echo 'Windows targets:'
@@ -240,19 +240,3 @@ endif
generated-files-y += config-target.h
Makefile: $(generated-files-y)
-
-# Reports/Analysis
-#
-# The target specific coverage report only cares about target specific
-# blobs and not the shared code.
-#
-
-%/coverage-report.html:
- @mkdir -p $*
- $(call quiet-command,\
- gcovr -r $(SRC_PATH) --object-directory $(CURDIR) \
- -p --html --html-details -o $@, \
- "GEN", "coverage-report.html")
-
-.PHONY: coverage-report
-coverage-report: $(CURDIR)/reports/coverage/coverage-report.html
@@ -418,7 +418,6 @@ tcg_interpreter="no"
bigendian="no"
mingw32="no"
gcov="no"
-gcov_tool="gcov"
EXESUF=""
DSOSUF=".so"
LDFLAGS_SHARED="-shared"
@@ -980,8 +979,6 @@ for opt do
;;
--meson=*) meson="$optarg"
;;
- --gcov=*) gcov_tool="$optarg"
- ;;
--smbd=*) smbd="$optarg"
;;
--extra-cflags=*)
@@ -1739,7 +1736,6 @@ Advanced options (experts only):
--with-coroutine=BACKEND coroutine backend. Supported options:
ucontext, sigaltstack, windows
--enable-gcov enable test coverage analysis with gcov
- --gcov=GCOV use specified gcov [$gcov_tool]
--disable-blobs disable installing provided firmware blobs
--with-vss-sdk=SDK-path enable Windows VSS support in QEMU Guest Agent
--with-win-sdk=SDK-path path to Windows Platform SDK (to build VSS .tlb)
@@ -6111,8 +6107,7 @@ esac
write_c_skeleton
if test "$gcov" = "yes" ; then
- CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
- LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
+ :
elif test "$fortify_source" = "yes" ; then
CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
elif test "$debug" = "no"; then
@@ -6587,7 +6582,6 @@ echo "debug stack usage $debug_stack_usage"
echo "mutex debugging $debug_mutex"
echo "crypto afalg $crypto_afalg"
echo "GlusterFS support $glusterfs"
-echo "gcov $gcov_tool"
echo "gcov enabled $gcov"
echo "TPM support $tpm"
echo "libssh support $libssh"
@@ -7537,7 +7531,6 @@ echo "TASN1_CFLAGS=$tasn1_cflags" >> $config_host_mak
echo "POD2MAN=$POD2MAN" >> $config_host_mak
if test "$gcov" = "yes" ; then
echo "CONFIG_GCOV=y" >> $config_host_mak
- echo "GCOV=$gcov_tool" >> $config_host_mak
fi
if test "$libudev" != "no"; then
@@ -8125,6 +8118,7 @@ NINJA=$PWD/ninjatool $python $meson setup \
$(test "$strip_opt" = yes && echo --strip) \
--buildtype $(if test "$debug" = yes; then echo debug; else echo debugoptimized; fi) \
-Db_pie=$(if test "$pie" = yes; then echo true; else echo false; fi) \
+ -Db_coverage=$(if test "$gcov" = yes; then echo true; else echo false; fi) \
$cross_arg \
"$PWD" "$source_path"
@@ -163,13 +163,12 @@ instrumenting the tested code. To use it, configure QEMU with
``--enable-gcov`` option and build. Then run ``make check`` as usual.
If you want to gather coverage information on a single test the ``make
-clean-coverage`` target can be used to delete any existing coverage
+clean-gcda`` target can be used to delete any existing coverage
information before running a single test.
You can generate a HTML coverage report by executing ``make
-coverage-report`` which will create
-./reports/coverage/coverage-report.html. If you want to create it
-elsewhere simply execute ``make /foo/bar/baz/coverage-report.html``.
+coverage-html`` which will create
+``meson-logs/coveragereport/index.html``.
Further analysis can be conducted by running the ``gcov`` command
directly on the various .gcda output files. Please read the ``gcov``