[PATCH 1/6] travis.yml: Move gprof/gcov test across to gitlab

Thomas Huth posted 6 patches 5 years ago
Maintainers: Thomas Huth <thuth@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, Fam Zheng <fam@euphon.net>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Cornelia Huck <cohuck@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>
There is a newer version of this series
[PATCH 1/6] travis.yml: Move gprof/gcov test across to gitlab
Posted by Thomas Huth 5 years ago
From: Philippe Mathieu-Daudé <philmd@redhat.com>

Similarly to commit 8cdb2cef3f1, move the gprof/gcov test to GitLab.

The coverage-summary.sh script is not Travis-CI specific, make it
generic.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20201108204535.2319870-10-philmd@redhat.com>
[thuth: Add gcovr and bsdmainutils which are required for the
        overage-summary.sh script to the ubuntu docker file]
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.yml                             | 12 ++++++++++++
 .travis.yml                                | 14 --------------
 MAINTAINERS                                |  2 +-
 scripts/{travis => ci}/coverage-summary.sh |  2 +-
 tests/docker/dockerfiles/ubuntu2004.docker |  2 ++
 5 files changed, 16 insertions(+), 16 deletions(-)
 rename scripts/{travis => ci}/coverage-summary.sh (92%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7c0db64710..8b97b512bb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -468,6 +468,18 @@ check-deprecated:
     MAKE_CHECK_ARGS: check-tcg
   allow_failure: true
 
+# gprof/gcov are GCC features
+build-gprof-gcov:
+  <<: *native_build_job_definition
+  variables:
+    IMAGE: ubuntu2004
+    CONFIGURE_ARGS: --enable-gprof --enable-gcov
+    MAKE_CHECK_ARGS: build-tcg
+    TARGETS: aarch64-softmmu mips64-softmmu ppc64-softmmu
+             riscv64-softmmu s390x-softmmu x86_64-softmmu
+  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..76b69f6de1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -166,20 +166,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 bcd88668bc..f14a2e6eb5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3193,7 +3193,7 @@ R: Philippe Mathieu-Daudé <philmd@redhat.com>
 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/travis/coverage-summary.sh b/scripts/ci/coverage-summary.sh
similarity index 92%
rename from scripts/travis/coverage-summary.sh
rename to scripts/ci/coverage-summary.sh
index d7086cf9ca..8d9fb4de40 100755
--- a/scripts/travis/coverage-summary.sh
+++ b/scripts/ci/coverage-summary.sh
@@ -3,7 +3,7 @@
 # Author: Alex Bennée <alex.bennee@linaro.org>
 #
 # 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
+# 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"
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 \
-- 
2.27.0


Re: [PATCH 1/6] travis.yml: Move gprof/gcov test across to gitlab
Posted by Wainer dos Santos Moschetta 5 years ago
Hi,

On 2/3/21 8:32 AM, Thomas Huth wrote:
> From: Philippe Mathieu-Daudé <philmd@redhat.com>
>
> Similarly to commit 8cdb2cef3f1, move the gprof/gcov test to GitLab.
>
> The coverage-summary.sh script is not Travis-CI specific, make it
> generic.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> Message-Id: <20201108204535.2319870-10-philmd@redhat.com>
> [thuth: Add gcovr and bsdmainutils which are required for the
>          overage-summary.sh script to the ubuntu docker file]
s/overage/coverage/
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   .gitlab-ci.yml                             | 12 ++++++++++++
>   .travis.yml                                | 14 --------------
>   MAINTAINERS                                |  2 +-
>   scripts/{travis => ci}/coverage-summary.sh |  2 +-
>   tests/docker/dockerfiles/ubuntu2004.docker |  2 ++
>   5 files changed, 16 insertions(+), 16 deletions(-)
>   rename scripts/{travis => ci}/coverage-summary.sh (92%)
>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
> index 7c0db64710..8b97b512bb 100644
> --- a/.gitlab-ci.yml
> +++ b/.gitlab-ci.yml
> @@ -468,6 +468,18 @@ check-deprecated:
>       MAKE_CHECK_ARGS: check-tcg
>     allow_failure: true
>   
> +# gprof/gcov are GCC features
> +build-gprof-gcov:
> +  <<: *native_build_job_definition
> +  variables:
> +    IMAGE: ubuntu2004
> +    CONFIGURE_ARGS: --enable-gprof --enable-gcov
> +    MAKE_CHECK_ARGS: build-tcg

With build-tcg it generates an empty report, e.g., 
https://gitlab.com/wainersm/qemu/-/jobs/1005923421

Shouldn't it run `make check`?

- Wainer

> +    TARGETS: aarch64-softmmu mips64-softmmu ppc64-softmmu
> +             riscv64-softmmu s390x-softmmu x86_64-softmmu
> +  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..76b69f6de1 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -166,20 +166,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 bcd88668bc..f14a2e6eb5 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -3193,7 +3193,7 @@ R: Philippe Mathieu-Daudé <philmd@redhat.com>
>   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/travis/coverage-summary.sh b/scripts/ci/coverage-summary.sh
> similarity index 92%
> rename from scripts/travis/coverage-summary.sh
> rename to scripts/ci/coverage-summary.sh
> index d7086cf9ca..8d9fb4de40 100755
> --- a/scripts/travis/coverage-summary.sh
> +++ b/scripts/ci/coverage-summary.sh
> @@ -3,7 +3,7 @@
>   # Author: Alex Bennée <alex.bennee@linaro.org>
>   #
>   # 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
> +# 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"
> 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 \


Re: [PATCH 1/6] travis.yml: Move gprof/gcov test across to gitlab
Posted by Thomas Huth 5 years ago
On 03/02/2021 20.32, Wainer dos Santos Moschetta wrote:
> Hi,
> 
> On 2/3/21 8:32 AM, Thomas Huth wrote:
>> From: Philippe Mathieu-Daudé <philmd@redhat.com>
>>
>> Similarly to commit 8cdb2cef3f1, move the gprof/gcov test to GitLab.
>>
>> The coverage-summary.sh script is not Travis-CI specific, make it
>> generic.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>> Message-Id: <20201108204535.2319870-10-philmd@redhat.com>
>> [thuth: Add gcovr and bsdmainutils which are required for the
>>          overage-summary.sh script to the ubuntu docker file]
> s/overage/coverage/
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>   .gitlab-ci.yml                             | 12 ++++++++++++
>>   .travis.yml                                | 14 --------------
>>   MAINTAINERS                                |  2 +-
>>   scripts/{travis => ci}/coverage-summary.sh |  2 +-
>>   tests/docker/dockerfiles/ubuntu2004.docker |  2 ++
>>   5 files changed, 16 insertions(+), 16 deletions(-)
>>   rename scripts/{travis => ci}/coverage-summary.sh (92%)
>>
>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>> index 7c0db64710..8b97b512bb 100644
>> --- a/.gitlab-ci.yml
>> +++ b/.gitlab-ci.yml
>> @@ -468,6 +468,18 @@ check-deprecated:
>>       MAKE_CHECK_ARGS: check-tcg
>>     allow_failure: true
>> +# gprof/gcov are GCC features
>> +build-gprof-gcov:
>> +  <<: *native_build_job_definition
>> +  variables:
>> +    IMAGE: ubuntu2004
>> +    CONFIGURE_ARGS: --enable-gprof --enable-gcov
>> +    MAKE_CHECK_ARGS: build-tcg
> 
> With build-tcg it generates an empty report, e.g., 
> https://gitlab.com/wainersm/qemu/-/jobs/1005923421
> 
> Shouldn't it run `make check`?

D'oh, you're right. I think we need to run at least a "make check-unit" 
here. I'll rework my patch accordingly...

By the way, it's broken on Travis since a long time, e.g. with version 5.0 
there is already only a stack trace:

https://travis-ci.org/github/qemu/qemu/jobs/680661167#L8411

Seems like nobody noticed this for almost a year now...

  Thomas


Re: [PATCH 1/6] travis.yml: Move gprof/gcov test across to gitlab
Posted by Alex Bennée 5 years ago
Thomas Huth <thuth@redhat.com> writes:

> On 03/02/2021 20.32, Wainer dos Santos Moschetta wrote:
>> Hi,
>> 
>> On 2/3/21 8:32 AM, Thomas Huth wrote:
>>> From: Philippe Mathieu-Daudé <philmd@redhat.com>
>>>
>>> Similarly to commit 8cdb2cef3f1, move the gprof/gcov test to GitLab.
>>>
>>> The coverage-summary.sh script is not Travis-CI specific, make it
>>> generic.
>>>
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
>>> Message-Id: <20201108204535.2319870-10-philmd@redhat.com>
>>> [thuth: Add gcovr and bsdmainutils which are required for the
>>>          overage-summary.sh script to the ubuntu docker file]
>> s/overage/coverage/
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>> ---
>>>   .gitlab-ci.yml                             | 12 ++++++++++++
>>>   .travis.yml                                | 14 --------------
>>>   MAINTAINERS                                |  2 +-
>>>   scripts/{travis => ci}/coverage-summary.sh |  2 +-
>>>   tests/docker/dockerfiles/ubuntu2004.docker |  2 ++
>>>   5 files changed, 16 insertions(+), 16 deletions(-)
>>>   rename scripts/{travis => ci}/coverage-summary.sh (92%)
>>>
>>> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
>>> index 7c0db64710..8b97b512bb 100644
>>> --- a/.gitlab-ci.yml
>>> +++ b/.gitlab-ci.yml
>>> @@ -468,6 +468,18 @@ check-deprecated:
>>>       MAKE_CHECK_ARGS: check-tcg
>>>     allow_failure: true
>>> +# gprof/gcov are GCC features
>>> +build-gprof-gcov:
>>> +  <<: *native_build_job_definition
>>> +  variables:
>>> +    IMAGE: ubuntu2004
>>> +    CONFIGURE_ARGS: --enable-gprof --enable-gcov
>>> +    MAKE_CHECK_ARGS: build-tcg
>> 
>> With build-tcg it generates an empty report, e.g., 
>> https://gitlab.com/wainersm/qemu/-/jobs/1005923421
>> 
>> Shouldn't it run `make check`?
>
> D'oh, you're right. I think we need to run at least a "make check-unit" 
> here. I'll rework my patch accordingly...
>
> By the way, it's broken on Travis since a long time, e.g. with version 5.0 
> there is already only a stack trace:
>
> https://travis-ci.org/github/qemu/qemu/jobs/680661167#L8411
>
> Seems like nobody noticed this for almost a year now...

doh - the check_coverage was an after_success step so never influenced
the result. It was only a band aid really though - it would be better if
we published the html coverage report on gitlab's pages (like we now do
for annotated gtags source: https://qemu-project.gitlab.io/qemu/src/

>
>   Thomas


-- 
Alex Bennée