Message ID | 20180702143021.18864-8-alex.bennee@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Travis, Code Coverage and Cross Build updates | expand |
Hi Alex, On 07/02/2018 11:30 AM, Alex Bennée wrote: > This can be used to remove any stale coverage data before any > particular test run. This is useful for analysing individual tests. > > Signed-off-by: Alex Bennée <alex.bennee@linaro.org> > Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> > --- > > v2 > - s/to any/to delete any/ > --- > Makefile | 11 +++++++++++ > docs/devel/testing.rst | 11 ++++++++--- > 2 files changed, 19 insertions(+), 3 deletions(-) > > diff --git a/Makefile b/Makefile > index 7ed9cc4a21..2b3413a5ba 100644 > --- a/Makefile > +++ b/Makefile > @@ -723,6 +723,14 @@ 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") Would "find $(BUILD_DIR) ..." be safer? Regardless: Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > +endif > + > 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 > @@ -1073,6 +1081,9 @@ 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 '' > diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst > index 66ef219f69..7f04ca104e 100644 > --- a/docs/devel/testing.rst > +++ b/docs/devel/testing.rst > @@ -161,9 +161,14 @@ GCC gcov support > ``gcov`` is a GCC tool to analyze the testing coverage by > instrumenting the tested code. To use it, configure QEMU with > ``--enable-gcov`` option and build. Then run ``make check`` as usual. > -Reports can be obtained by running ``gcov`` command on the output > -files under ``$build_dir/tests/``, please read the ``gcov`` > -documentation for more information. > + > +If you want to gather coverage information on a single test the ``make > +clean-coverage`` target can be used to delete any existing coverage > +information before running a single test. > + > +Reports can be obtained by running ``gcov`` command > +on the output files under ``$build_dir/tests/``, please read the > +``gcov`` documentation for more information. > > QEMU iotests > ============ >
diff --git a/Makefile b/Makefile index 7ed9cc4a21..2b3413a5ba 100644 --- a/Makefile +++ b/Makefile @@ -723,6 +723,14 @@ 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: # 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 @@ -1073,6 +1081,9 @@ 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 '' diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst index 66ef219f69..7f04ca104e 100644 --- a/docs/devel/testing.rst +++ b/docs/devel/testing.rst @@ -161,9 +161,14 @@ GCC gcov support ``gcov`` is a GCC tool to analyze the testing coverage by instrumenting the tested code. To use it, configure QEMU with ``--enable-gcov`` option and build. Then run ``make check`` as usual. -Reports can be obtained by running ``gcov`` command on the output -files under ``$build_dir/tests/``, please read the ``gcov`` -documentation for more information. + +If you want to gather coverage information on a single test the ``make +clean-coverage`` target can be used to delete any existing coverage +information before running a single test. + +Reports can be obtained by running ``gcov`` command +on the output files under ``$build_dir/tests/``, please read the +``gcov`` documentation for more information. QEMU iotests ============