From: Philippe Mathieu-Daudé Date: Thu, 11 Feb 2021 12:27:36 +0000 (+0000) Subject: travis.yml: Move gprof/gcov test across to gitlab X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=04250c69bc100daf95a221b39ee438e679d093e8;p=qemu.git travis.yml: Move gprof/gcov test across to gitlab Similarly to commit 8cdb2cef3f1, move the gprof/gcov test to GitLab. The coverage-summary.sh script is not Travis-CI specific, make it generic. [thuth: Add gcovr and bsdmainutils which are required for the coverage-summary.sh script to the ubuntu docker file, and use 'check' as test target] Signed-off-by: Philippe Mathieu-Daudé Signed-off-by: Thomas Huth Signed-off-by: Alex Bennée Reviewed-by: Alex Bennée Reviewed-by: Wainer dos Santos Moschetta Message-Id: <20201108204535.2319870-10-philmd@redhat.com> Message-Id: <20210211045455.456371-2-thuth@redhat.com> Message-Id: <20210211122750.22645-2-alex.bennee@linaro.org> --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 28a83afb91..222858b553 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -467,6 +467,18 @@ check-deprecated: MAKE_CHECK_ARGS: check-tcg allow_failure: true +# gprof/gcov are GCC features +gprof-gcov: + <<: *native_build_job_definition + variables: + IMAGE: ubuntu2004 + CONFIGURE_ARGS: --enable-gprof --enable-gcov + MAKE_CHECK_ARGS: check + TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu + timeout: 70m + after_script: + - ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh + build-oss-fuzz: <<: *native_build_job_definition variables: diff --git a/.travis.yml b/.travis.yml index 5f1dea873e..05fa1ca905 100644 --- a/.travis.yml +++ b/.travis.yml @@ -52,7 +52,6 @@ addons: - ninja-build - sparse - uuid-dev - - gcovr # Tests dependencies - genisoimage @@ -166,20 +165,6 @@ jobs: compiler: clang - # gprof/gcov are GCC features - - name: "GCC gprof/gcov" - dist: bionic - addons: - apt: - packages: - - ninja-build - env: - - CONFIG="--enable-gprof --enable-gcov --disable-libssh - --target-list=${MAIN_SOFTMMU_TARGETS}" - after_success: - - ${SRC_DIR}/scripts/travis/coverage-summary.sh - - # Using newer GCC with sanitizers - name: "GCC9 with sanitizers (softmmu)" dist: bionic diff --git a/MAINTAINERS b/MAINTAINERS index de5fe1c65f..7f0781b7cc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3235,7 +3235,7 @@ R: Philippe Mathieu-Daudé S: Maintained F: .github/lockdown.yml F: .travis.yml -F: scripts/travis/ +F: scripts/ci/ F: .shippable.yml F: tests/docker/ F: tests/vm/ diff --git a/scripts/ci/coverage-summary.sh b/scripts/ci/coverage-summary.sh new file mode 100755 index 0000000000..8d9fb4de40 --- /dev/null +++ b/scripts/ci/coverage-summary.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Author: Alex Bennée +# +# Summerise the state of code coverage with gcovr and tweak the output +# to be more sane on CI runner. 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 s@$PWD\/@@ 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 diff --git a/scripts/travis/coverage-summary.sh b/scripts/travis/coverage-summary.sh deleted file mode 100755 index d7086cf9ca..0000000000 --- a/scripts/travis/coverage-summary.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# -# Author: Alex Bennée -# -# 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 s@$PWD\/@@ 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 diff --git a/tests/docker/dockerfiles/ubuntu2004.docker b/tests/docker/dockerfiles/ubuntu2004.docker index 8519584d2b..9750016e51 100644 --- a/tests/docker/dockerfiles/ubuntu2004.docker +++ b/tests/docker/dockerfiles/ubuntu2004.docker @@ -1,8 +1,10 @@ FROM ubuntu:20.04 ENV PACKAGES flex bison \ + bsdmainutils \ ccache \ clang-10\ gcc \ + gcovr \ genisoimage \ gettext \ git \