[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v3 07/20] travis: add gcovr summary for GCOV build
From: |
Alex Bennée |
Subject: |
[Qemu-devel] [PULL v3 07/20] travis: add gcovr summary for GCOV build |
Date: |
Thu, 5 Jul 2018 17:03:16 +0100 |
This gives a more useful summary, sorted by descending % coverage,
after the tests have run. The final numbers will give an idea if our
coverage is getting better or worse.
To keep the width sane we need to post process the file that the old
gcovr tool generates. This is done with a mix of sed, awk and column
in the scripts/coverage-summary.sh script.
As quite a lot of lines don't get covered at all we filter out all the
0% lines. If the file doesn't appear it is not being exercised.
Signed-off-by: Alex Bennée <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
diff --git a/.travis.yml b/.travis.yml
index 32188d51f1..95be6ec59f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -38,6 +38,7 @@ addons:
- libvte-2.90-dev
- sparse
- uuid-dev
+ - gcovr
# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
# to prevent IRC notifications from forks. This was created using:
@@ -86,6 +87,8 @@ matrix:
compiler: clang
# gprof/gcov are GCC features
- env: CONFIG="--enable-gprof --enable-gcov --disable-pie
--target-list=aarch64-softmmu,arm-softmmu,i386-softmmu,mips-softmmu,mips64-softmmu,ppc64-softmmu,riscv64-softmmu,s390x-softmmu,x86_64-softmmu"
+ after_success:
+ - ${SRC_DIR}/scripts/travis/coverage-summary.sh
compiler: gcc
# We manually include builds which we disable "make check" for
- env: CONFIG="--enable-debug --enable-tcg-interpreter"
diff --git a/MAINTAINERS b/MAINTAINERS
index 6630d691d1..6a13f70f99 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2166,6 +2166,7 @@ R: Philippe Mathieu-Daudé <address@hidden>
L: address@hidden
S: Maintained
F: .travis.yml
+F: scripts/travis/
F: .shippable.yml
F: tests/docker/
F: tests/vm/
diff --git a/scripts/travis/coverage-summary.sh
b/scripts/travis/coverage-summary.sh
new file mode 100755
index 0000000000..d7086cf9ca
--- /dev/null
+++ b/scripts/travis/coverage-summary.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+#
+# Author: Alex Bennée <address@hidden>
+#
+# Summerise the state of code coverage with gcovr and tweak the output
+# to be more sane on Travis hosts. As we expect to be executed on a
+# throw away CI instance we do spam temp files all over the shop. You
+# most likely don't want to execute this script but just call gcovr
+# directly. See also "make coverage-report"
+#
+# This code is licensed under the GPL version 2 or later. See
+# the COPYING file in the top-level directory.
+
+# first generate the coverage report
+gcovr -p -o raw-report.txt
+
+# strip the full-path and line markers
+sed address@hidden/@@ raw-report.txt | sed s/[0-9]\*[,-]//g > simplified.txt
+
+# reflow lines that got split
+awk '/.[ch]$/ { printf("%s", $0); next } 1' simplified.txt > rejoined.txt
+
+# columnify
+column -t rejoined.txt > final.txt
+
+# and dump, stripping out 0% coverage
+grep -v "0%" final.txt
--
2.17.1
- [Qemu-devel] [PULL v3 04/20] build-system: remove per-test GCOV reporting, (continued)
- [Qemu-devel] [PULL v3 04/20] build-system: remove per-test GCOV reporting, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 05/20] .gitignore: add .gcov files, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 03/20] travis: test out-of-tree builds, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 12/20] docker: ubuntu: Update the package list before installing new ones, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 10/20] linux-user: introduce preexit_cleanup, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 13/20] docker: ubuntu: Use SDL2, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 19/20] docker: add special rule for deboostrapped images, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 06/20] docker: add gcovr to travis image, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 08/20] build-system: add clean-coverage target, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 02/20] travis: do not waste time cloning unused submodules, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 07/20] travis: add gcovr summary for GCOV build,
Alex Bennée <=
- [Qemu-devel] [PULL v3 11/20] linux-user: add gcov support to preexit_cleanup, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 15/20] docker: Do not run tests in 'intermediate' images, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 09/20] build-system: add coverage-report target, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 18/20] docker: add special handling for FROM:debian-%-user targets, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 14/20] docker: Clean the MXE base image, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 17/20] docker: debian-bootstrap.pre allow customising of variant/url, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 16/20] docker: drop QEMU build-dep from bootstrap, Alex Bennée, 2018/07/05
- [Qemu-devel] [PULL v3 20/20] docker: add linux-user powered cross builder for QEMU, Alex Bennée, 2018/07/05
- Re: [Qemu-devel] [PULL v3 00/20] Travis, Code Coverage and Cross Build updates, Peter Maydell, 2018/07/05