[mutter/wip/carlosg/ci-coverage-merge] ci: Run coverage in all tests, and merge results




commit 0baa68d1a34f61565a90bbf17455050b6e4ba406
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Mar 1 01:12:58 2022 +0100

    ci: Run coverage in all tests, and merge results
    
    Instead of having different coverage outputs for different architectures
    and compilation flags, have each of those tests run coverage in order
    to generate a JSON report, and have that merged at a final common job.

 .gitlab-ci.yml | 25 +++++++++----------------
 meson.build    |  1 -
 2 files changed, 9 insertions(+), 17 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5e80d9464f..7c0e9c5f3b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -286,6 +286,8 @@ build-without-native-backend-and-wayland@x86_64:
   script:
     - dbus-run-session -- xvfb-run -a -s "$XVFB_SERVER_ARGS"
         ./.gitlab-ci/run-meson.sh test -C build --no-rebuild -t 10
+  after_script:
+    - gcovr --json --root=. --exclude=src/tests --output=coverage-${CI_JOB_NAME}.json
   artifacts:
     expire_in: 1 day
     reports:
@@ -294,6 +296,7 @@ build-without-native-backend-and-wayland@x86_64:
     when: always
     paths:
       - build
+      - coverage-*.json
 
 test-mutter@x86_64:
   extends:
@@ -309,30 +312,20 @@ test-mutter@aarch64:
   needs:
     - build-mutter@aarch64
 
-.test-mutter-coverage:
+coverage:
   extends:
     - .fdo.distribution-image@fedora
+    - .mutter.fedora:35@x86_64
   stage: analyze
   script:
-    - ninja -C build coverage
-    - cat build/meson-logs/coverage.txt
+    - mkdir coveragereport
+    - gcovr --add-tracefile coverage-*.json --html-details --print-summary --output coveragereport/index.html
   artifacts:
     paths:
-      - build/meson-logs/coveragereport
-  coverage: '/^TOTAL.*\s+(\d+\%)$/'
-
-test-mutter-coverage@x86_64:
-  extends:
-    - .test-mutter-coverage
-    - .mutter.fedora:35@x86_64
+      - coveragereport
+  coverage: '/^lines: (\d+\.\d+\%)/'
   needs:
     - test-mutter@x86_64
-
-test-mutter-coverage@aarch64:
-  extends:
-    - .test-mutter-coverage
-    - .mutter.fedora:35@aarch64
-  needs:
     - test-mutter@aarch64
 
 can-build-gnome-shell@x86_64:
diff --git a/meson.build b/meson.build
index b6522f93d3..547f940884 100644
--- a/meson.build
+++ b/meson.build
@@ -333,7 +333,6 @@ if have_tests
     ],
     exe_wrapper: [
       default_test_wrappers,
-      find_program('catchsegv'),
       find_program('xvfb-run'), '-a', '-s', '+iglx -noreset',
     ],
     timeout_multiplier: 10,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]