meson: use coverage option
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
da6d48b969
commit
bf0e56a3ca
14
Makefile
14
Makefile
@ -777,14 +777,6 @@ module_block.h: $(SRC_PATH)/scripts/modules/module_block.py config-host.mak
|
|||||||
$(addprefix $(SRC_PATH)/,$(patsubst %.mo,%.c,$(block-obj-m))), \
|
$(addprefix $(SRC_PATH)/,$(patsubst %.mo,%.c,$(block-obj-m))), \
|
||||||
"GEN","$@")
|
"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 ninja-clean clean-ctlist
|
clean: recurse-clean ninja-clean clean-ctlist
|
||||||
-test -f ninjatool && ./ninjatool $(if $(V),-v,) -t clean
|
-test -f ninjatool && ./ninjatool $(if $(V),-v,) -t clean
|
||||||
# avoid old build problems by removing potentially incorrect old files
|
# avoid old build problems by removing potentially incorrect old files
|
||||||
@ -1291,9 +1283,6 @@ endif
|
|||||||
echo '')
|
echo '')
|
||||||
@echo 'Cleaning targets:'
|
@echo 'Cleaning targets:'
|
||||||
$(call print-help,clean,Remove most generated files but keep the config)
|
$(call print-help,clean,Remove most generated files but keep the config)
|
||||||
ifdef CONFIG_GCOV
|
|
||||||
$(call print-help,clean-coverage,Remove coverage files)
|
|
||||||
endif
|
|
||||||
$(call print-help,distclean,Remove all generated files)
|
$(call print-help,distclean,Remove all generated files)
|
||||||
$(call print-help,dist,Build a distributable tarball)
|
$(call print-help,dist,Build a distributable tarball)
|
||||||
@echo ''
|
@echo ''
|
||||||
@ -1304,9 +1293,6 @@ endif
|
|||||||
@echo ''
|
@echo ''
|
||||||
@echo 'Documentation targets:'
|
@echo 'Documentation targets:'
|
||||||
$(call print-help,html info pdf txt,Build documentation in specified format)
|
$(call print-help,html info pdf txt,Build documentation in specified format)
|
||||||
ifdef CONFIG_GCOV
|
|
||||||
$(call print-help,coverage-report,Create code coverage report)
|
|
||||||
endif
|
|
||||||
@echo ''
|
@echo ''
|
||||||
ifdef CONFIG_WIN32
|
ifdef CONFIG_WIN32
|
||||||
@echo 'Windows targets:'
|
@echo 'Windows targets:'
|
||||||
|
@ -269,19 +269,3 @@ endif
|
|||||||
|
|
||||||
generated-files-y += config-target.h
|
generated-files-y += config-target.h
|
||||||
Makefile: $(generated-files-y)
|
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
|
|
||||||
|
9
configure
vendored
9
configure
vendored
@ -470,7 +470,6 @@ tcg_interpreter="no"
|
|||||||
bigendian="no"
|
bigendian="no"
|
||||||
mingw32="no"
|
mingw32="no"
|
||||||
gcov="no"
|
gcov="no"
|
||||||
gcov_tool="gcov"
|
|
||||||
EXESUF=""
|
EXESUF=""
|
||||||
DSOSUF=".so"
|
DSOSUF=".so"
|
||||||
LDFLAGS_SHARED="-shared"
|
LDFLAGS_SHARED="-shared"
|
||||||
@ -1058,8 +1057,6 @@ for opt do
|
|||||||
;;
|
;;
|
||||||
--meson=*) meson="$optarg"
|
--meson=*) meson="$optarg"
|
||||||
;;
|
;;
|
||||||
--gcov=*) gcov_tool="$optarg"
|
|
||||||
;;
|
|
||||||
--smbd=*) smbd="$optarg"
|
--smbd=*) smbd="$optarg"
|
||||||
;;
|
;;
|
||||||
--extra-cflags=*)
|
--extra-cflags=*)
|
||||||
@ -1866,7 +1863,6 @@ Advanced options (experts only):
|
|||||||
--with-coroutine=BACKEND coroutine backend. Supported options:
|
--with-coroutine=BACKEND coroutine backend. Supported options:
|
||||||
ucontext, sigaltstack, windows
|
ucontext, sigaltstack, windows
|
||||||
--enable-gcov enable test coverage analysis with gcov
|
--enable-gcov enable test coverage analysis with gcov
|
||||||
--gcov=GCOV use specified gcov [$gcov_tool]
|
|
||||||
--disable-blobs disable installing provided firmware blobs
|
--disable-blobs disable installing provided firmware blobs
|
||||||
--with-vss-sdk=SDK-path enable Windows VSS support in QEMU Guest Agent
|
--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)
|
--with-win-sdk=SDK-path path to Windows Platform SDK (to build VSS .tlb)
|
||||||
@ -6600,8 +6596,7 @@ fi
|
|||||||
write_c_skeleton
|
write_c_skeleton
|
||||||
|
|
||||||
if test "$gcov" = "yes" ; then
|
if test "$gcov" = "yes" ; then
|
||||||
QEMU_CFLAGS="-fprofile-arcs -ftest-coverage -g $QEMU_CFLAGS"
|
:
|
||||||
QEMU_LDFLAGS="-fprofile-arcs -ftest-coverage $QEMU_LDFLAGS"
|
|
||||||
elif test "$fortify_source" = "yes" ; then
|
elif test "$fortify_source" = "yes" ; then
|
||||||
QEMU_CFLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
|
QEMU_CFLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
|
||||||
debug=no
|
debug=no
|
||||||
@ -7886,7 +7881,6 @@ echo "TASN1_CFLAGS=$tasn1_cflags" >> $config_host_mak
|
|||||||
echo "POD2MAN=$POD2MAN" >> $config_host_mak
|
echo "POD2MAN=$POD2MAN" >> $config_host_mak
|
||||||
if test "$gcov" = "yes" ; then
|
if test "$gcov" = "yes" ; then
|
||||||
echo "CONFIG_GCOV=y" >> $config_host_mak
|
echo "CONFIG_GCOV=y" >> $config_host_mak
|
||||||
echo "GCOV=$gcov_tool" >> $config_host_mak
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$libudev" != "no"; then
|
if test "$libudev" != "no"; then
|
||||||
@ -8519,6 +8513,7 @@ NINJA=$PWD/ninjatool $meson setup \
|
|||||||
-Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
|
-Dwerror=$(if test "$werror" = yes; then echo true; else echo false; fi) \
|
||||||
-Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
|
-Dstrip=$(if test "$strip_opt" = yes; then echo true; else echo false; fi) \
|
||||||
-Db_pie=$(if test "$pie" = yes; then echo true; else echo false; 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 \
|
$cross_arg \
|
||||||
"$PWD" "$source_path"
|
"$PWD" "$source_path"
|
||||||
|
|
||||||
|
@ -164,13 +164,12 @@ instrumenting the tested code. To use it, configure QEMU with
|
|||||||
``--enable-gcov`` option and build. Then run ``make check`` as usual.
|
``--enable-gcov`` option and build. Then run ``make check`` as usual.
|
||||||
|
|
||||||
If you want to gather coverage information on a single test the ``make
|
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.
|
information before running a single test.
|
||||||
|
|
||||||
You can generate a HTML coverage report by executing ``make
|
You can generate a HTML coverage report by executing ``make
|
||||||
coverage-report`` which will create
|
coverage-html`` which will create
|
||||||
./reports/coverage/coverage-report.html. If you want to create it
|
``meson-logs/coveragereport/index.html``.
|
||||||
elsewhere simply execute ``make /foo/bar/baz/coverage-report.html``.
|
|
||||||
|
|
||||||
Further analysis can be conducted by running the ``gcov`` command
|
Further analysis can be conducted by running the ``gcov`` command
|
||||||
directly on the various .gcda output files. Please read the ``gcov``
|
directly on the various .gcda output files. Please read the ``gcov``
|
||||||
|
@ -207,7 +207,7 @@ summary_info += {'debug stack usage': config_host.has_key('CONFIG_DEBUG_STACK_US
|
|||||||
summary_info += {'mutex debugging': config_host.has_key('CONFIG_DEBUG_MUTEX')}
|
summary_info += {'mutex debugging': config_host.has_key('CONFIG_DEBUG_MUTEX')}
|
||||||
summary_info += {'crypto afalg': config_host.has_key('CONFIG_AF_ALG')}
|
summary_info += {'crypto afalg': config_host.has_key('CONFIG_AF_ALG')}
|
||||||
summary_info += {'GlusterFS support': config_host.has_key('CONFIG_GLUSTERFS')}
|
summary_info += {'GlusterFS support': config_host.has_key('CONFIG_GLUSTERFS')}
|
||||||
summary_info += {'gcov': config_host.has_key('CONFIG_GCOV')}
|
summary_info += {'gcov': get_option('b_coverage')}
|
||||||
summary_info += {'TPM support': config_host.has_key('CONFIG_TPM')}
|
summary_info += {'TPM support': config_host.has_key('CONFIG_TPM')}
|
||||||
summary_info += {'libssh support': config_host.has_key('CONFIG_LIBSSH')}
|
summary_info += {'libssh support': config_host.has_key('CONFIG_LIBSSH')}
|
||||||
summary_info += {'QOM debugging': config_host.has_key('CONFIG_QOM_CAST_DEBUG')}
|
summary_info += {'QOM debugging': config_host.has_key('CONFIG_QOM_CAST_DEBUG')}
|
||||||
|
Loading…
Reference in New Issue
Block a user