]> git.proxmox.com Git - mirror_qemu.git/commitdiff
meson: use coverage option
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Fri, 4 Oct 2019 13:35:16 +0000 (17:35 +0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 21 Aug 2020 10:30:07 +0000 (06:30 -0400)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Makefile
Makefile.target
configure
docs/devel/testing.rst
meson.build

index b726e7d8d29324ad290c27083c2f76a37fb295b1..ba8413d809f9a3423d3171c74c5fc7aca25fe886 100644 (file)
--- a/Makefile
+++ b/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))), \
        "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
        -test -f ninjatool && ./ninjatool $(if $(V),-v,) -t clean
 # avoid old build problems by removing potentially incorrect old files
@@ -1291,9 +1283,6 @@ endif
                echo '')
        @echo  'Cleaning targets:'
        $(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,dist,Build a distributable tarball)
        @echo  ''
@@ -1304,9 +1293,6 @@ endif
        @echo  ''
        @echo  'Documentation targets:'
        $(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  ''
 ifdef CONFIG_WIN32
        @echo  'Windows targets:'
index ffa2657269ac5e4ed4eab213e1bdea0f395a340f..d61a6a978ba82a8c676a86f973c0aeba566d64a4 100644 (file)
@@ -269,19 +269,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
index 5eb1fb59e24e0329ed8e96ae23414e76f8697df9..41d3b973b46b6a0868dc69d7227ec7d80a565b0f 100755 (executable)
--- a/configure
+++ b/configure
@@ -470,7 +470,6 @@ tcg_interpreter="no"
 bigendian="no"
 mingw32="no"
 gcov="no"
-gcov_tool="gcov"
 EXESUF=""
 DSOSUF=".so"
 LDFLAGS_SHARED="-shared"
@@ -1058,8 +1057,6 @@ for opt do
   ;;
   --meson=*) meson="$optarg"
   ;;
-  --gcov=*) gcov_tool="$optarg"
-  ;;
   --smbd=*) smbd="$optarg"
   ;;
   --extra-cflags=*)
@@ -1866,7 +1863,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)
@@ -6600,8 +6596,7 @@ fi
 write_c_skeleton
 
 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
   QEMU_CFLAGS="-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
   debug=no
@@ -7886,7 +7881,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
@@ -8519,6 +8513,7 @@ NINJA=$PWD/ninjatool $meson setup \
         -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) \
         -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"
 
index c1ff24370bfdd7885d1ab2225424b912a204b814..a4264691be3dd5a1c3a0f86aa39a81fb9d7451b3 100644 (file)
@@ -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.
 
 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``
index c47cd745719c85b8e07b44d2bfa4b2c0a97c4c3d..1a56ac8b2646dcaaa3a639011abdeba0ca7086cb 100644 (file)
@@ -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 += {'crypto afalg':      config_host.has_key('CONFIG_AF_ALG')}
 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 += {'libssh support':    config_host.has_key('CONFIG_LIBSSH')}
 summary_info += {'QOM debugging':     config_host.has_key('CONFIG_QOM_CAST_DEBUG')}