From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44827) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fVkIm-0008D5-9l for qemu-devel@nongnu.org; Wed, 20 Jun 2018 17:06:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fVkIl-0002BY-9M for qemu-devel@nongnu.org; Wed, 20 Jun 2018 17:06:04 -0400 Received: from mail-wr0-x242.google.com ([2a00:1450:400c:c0c::242]:41666) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fVkIl-0002B6-2p for qemu-devel@nongnu.org; Wed, 20 Jun 2018 17:06:03 -0400 Received: by mail-wr0-x242.google.com with SMTP id h10-v6so879162wrq.8 for ; Wed, 20 Jun 2018 14:06:02 -0700 (PDT) References: <20180620132032.12952-1-alex.bennee@linaro.org> <20180620132032.12952-5-alex.bennee@linaro.org> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: Date: Wed, 20 Jun 2018 22:06:00 +0100 Message-ID: <87muvpuq13.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC PATCH 4/5] build-system: add clean-coverage target List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Philippe =?utf-8?Q?Mathieu-Daud=C3=A9?= Cc: cota@braap.org, famz@redhat.com, berrange@redhat.com, richard.henderson@linaro.org, balrogg@gmail.com, aurelien@aurel32.net, agraf@suse.de, qemu-devel@nongnu.org Philippe Mathieu-Daud=C3=A9 writes: > Hi Alex, > > On 06/20/2018 10:20 AM, Alex Benn=C3=A9e 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=C3=A9e >> --- >> Makefile | 11 +++++++++++ >> docs/devel/testing.rst | 11 ++++++++--- >> 2 files changed, 19 insertions(+), 3 deletions(-) >> >> diff --git a/Makefile b/Makefile >> index e46f2b625a..cb4af8bf80 100644 >> --- a/Makefile >> +++ b/Makefile >> @@ -725,6 +725,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") > > I also see ".gcno" files. > From GCC man page: > > -ftest-coverage > Produce a notes file that the gcov code-coverage > utility can use to show program coverage. Each > source file's note file is called auxname.gcno. I explicitly left that out - the gcno file is regenerated by the build. There is no reason to wipe it between coverage runs. A full clean should remove them however. > > Tested-by: Philippe Mathieu-Daud=C3=A9 > Adding gcno: > Reviewed-by: Philippe Mathieu-Daud=C3=A9 > >> +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 >> @@ -1075,6 +1083,9 @@ endif >> echo '') >> @echo 'Cleaning targets:' >> @echo ' clean - Remove most generated files but keep the c= onfig' >> +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..a3652aea14 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 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 >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >> -- Alex Benn=C3=A9e