From 765aff5a42d9b7568bbd89f711d52c2da346e91c Mon Sep 17 00:00:00 2001 From: Daniel Mensinger Date: Mon, 7 Jun 2021 13:00:59 +0200 Subject: coverage: Enable coverage reports --- ci/run.ps1 | 19 +++++++++++++++++-- ci/upload_cov.sh | 13 +++++++++++++ ci/usercustomize.py | 19 +++++++++++++++++++ 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100755 ci/upload_cov.sh create mode 100644 ci/usercustomize.py (limited to 'ci') diff --git a/ci/run.ps1 b/ci/run.ps1 index 424af72..961c423 100644 --- a/ci/run.ps1 +++ b/ci/run.ps1 @@ -68,11 +68,26 @@ python --version # Needed for running unit tests in parallel. echo "" -python -m pip --disable-pip-version-check install --upgrade pefile pytest-xdist jsonschema +python -m pip --disable-pip-version-check install --upgrade pefile pytest-xdist jsonschema coverage echo "" echo "=== Start running tests ===" # Starting from VS2019 Powershell(?) will fail the test run # if it prints anything to stderr. Python's test runner # does that by default so we need to forward it. -cmd /c "python 2>&1 run_tests.py --backend $env:backend $env:extraargs" +cmd /c "python 2>&1 ./tools/run_with_cov.py run_tests.py --backend $env:backend $env:extraargs" + +echo "" +echo "" +echo "=== Gathering coverage report ===" +echo "" + +python3 -m coverage combine +python3 -m coverage xml +python3 -m coverage report + +# Currently codecov.py does not handle Azure, use this fork of a fork to get it +# working without requireing a token +git clone https://github.com/mensinda/codecov-python +python3 -m pip install --ignore-installed ./codecov-python +python3 -m codecov -f .coverage/coverage.xml -n "VS$env:compiler $env:arch $env:backend" -c $env:SOURCE_VERSION diff --git a/ci/upload_cov.sh b/ci/upload_cov.sh new file mode 100755 index 0000000..089641b --- /dev/null +++ b/ci/upload_cov.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +echo "Combining coverage reports..." +coverage combine + +echo "Generating XML report..." +coverage xml + +echo "Printing report" +coverage report + +echo "Uploading to codecov..." +codecov -f .coverage/coverage.xml -n "$1" diff --git a/ci/usercustomize.py b/ci/usercustomize.py new file mode 100644 index 0000000..72421ba --- /dev/null +++ b/ci/usercustomize.py @@ -0,0 +1,19 @@ +# Copyright 2021 The Meson development team + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This script is used by coverage (see tools/run_with_cov.py) to enable coverage +# reports in python subprocesses + +import coverage +coverage.process_startup() -- cgit v1.1