diff options
-rw-r--r-- | .gitlab-ci.yml | 1 | ||||
-rwxr-xr-x | .gitlab-ci/coverage-docker.sh | 21 | ||||
-rw-r--r-- | .gitlab-ci/fixup-lcov-paths.py | 33 | ||||
-rwxr-xr-x | .gitlab-ci/test-docker-old.sh | 1 | ||||
-rwxr-xr-x | .gitlab-ci/test-docker.sh | 1 | ||||
-rwxr-xr-x | .gitlab-ci/test-flatpak-gtk4.sh | 1 | ||||
-rwxr-xr-x | .gitlab-ci/test-msys2.sh | 1 |
7 files changed, 31 insertions, 28 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a1a1a9b5..024654bd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,6 +38,7 @@ coverage: PYENV_VERSION: "3.7.13-debug" script: - bash -x ./.gitlab-ci/coverage-docker.sh + coverage: '/^\s+lines\.+:\s+([\d.]+\%)\s+/' pages: stage: deploy diff --git a/.gitlab-ci/coverage-docker.sh b/.gitlab-ci/coverage-docker.sh index 3072c2fe..a1b271ee 100755 --- a/.gitlab-ci/coverage-docker.sh +++ b/.gitlab-ci/coverage-docker.sh @@ -2,11 +2,8 @@ set -e -python -m pip install coverage - # Make the Windows paths match our current layout python ./.gitlab-ci/fixup-lcov-paths.py coverage/*.lcov -python ./.gitlab-ci/fixup-covpy-paths.py coverage/.coverage* # Remove external headers (except gi tests) for path in coverage/*.lcov; do @@ -17,25 +14,9 @@ for path in coverage/*.lcov; do lcov --config-file .gitlab-ci/lcovrc -r "${path}" '*tmp-introspect*' -o "${path}" done -python -m coverage combine coverage -python -m coverage html --show-contexts --ignore-errors -d coverage/report-python genhtml --ignore-errors=source --config-file .gitlab-ci/lcovrc \ - coverage/*.lcov -o coverage/report-c + coverage/*.lcov -o coverage/ cd coverage rm -f .coverage* rm -f *.lcov - -ln -s report-python/index.html index-python.html -ln -s report-c/index.html index-c.html - -cat >index.html <<EOL -<html> -<body> -<ul> -<li><a href="report-c/index.html">C Coverage</a></li> -<li><a href="report-python/index.html">Python Coverage</a></li> -</ul> -</body> -</html> -EOL diff --git a/.gitlab-ci/fixup-lcov-paths.py b/.gitlab-ci/fixup-lcov-paths.py index ecd77425..e8555c75 100644 --- a/.gitlab-ci/fixup-lcov-paths.py +++ b/.gitlab-ci/fixup-lcov-paths.py @@ -1,6 +1,5 @@ import sys import os -import io import re @@ -11,15 +10,33 @@ def main(argv): for path in paths: print("cov-fixup:", path) - text = io.open(path, "r", encoding="utf-8").read() - text = text.replace("\\\\", "/") + with open(path, "r", encoding="utf-8") as h: + text = h.read() + + text = text.replace("\\\\", "/").replace("\\", "/") new_root = os.getcwd() + + def make_abs(m): + p = m.group(1) + if p.startswith("C:/"): + p = p.replace("C:/", "/c/") + if not p.startswith("/"): + p = os.path.join(new_root, p) + return "SF:" + p + + text = re.sub("SF:(.*?)$", make_abs, text, 0, re.MULTILINE) + + canidate = None for old_root in set(re.findall(":(.*?)/gi/.*?$", text, re.MULTILINE)): - if old_root != new_root: - print("replacing %r with %r" % (old_root, new_root)) - text = text.replace(old_root, new_root) - with io.open(path, "w", encoding="utf-8") as h: - h.write(text) + if canidate is None or len(old_root) < len(canidate): + canidate = old_root + + if canidate: + print("replacing %r with %r" % (canidate, new_root)) + text = text.replace(canidate, new_root) + + with open(path, "w", encoding="utf-8") as h: + h.write(text) if __name__ == "__main__": diff --git a/.gitlab-ci/test-docker-old.sh b/.gitlab-ci/test-docker-old.sh index c06f7ee2..8d88bd35 100755 --- a/.gitlab-ci/test-docker-old.sh +++ b/.gitlab-ci/test-docker-old.sh @@ -20,3 +20,4 @@ python -m pip install --upgrade pip python -m pip install pycairo pytest pytest-faulthandler coverage python setup.py build_tests xvfb-run -a python -m coverage run --context "${COV_KEY}" tests/runtests.py +python -m coverage lcov -o "${COV_DIR}/${COV_KEY}.py.lcov" diff --git a/.gitlab-ci/test-docker.sh b/.gitlab-ci/test-docker.sh index bb865a01..d44641dd 100755 --- a/.gitlab-ci/test-docker.sh +++ b/.gitlab-ci/test-docker.sh @@ -52,6 +52,7 @@ lcov --config-file .gitlab-ci/lcovrc --directory . --capture --initial --output- "${COV_DIR}/${CI_JOB_NAME}-baseline.lcov" xvfb-run -a python -m coverage run --context "${COV_KEY}" tests/runtests.py +python -m coverage lcov -o "${COV_DIR}/${COV_KEY}.py.lcov" # COLLECT GCOV COVERAGE lcov --config-file .gitlab-ci/lcovrc --directory . --capture --output-file \ diff --git a/.gitlab-ci/test-flatpak-gtk4.sh b/.gitlab-ci/test-flatpak-gtk4.sh index 320a107f..a299b641 100755 --- a/.gitlab-ci/test-flatpak-gtk4.sh +++ b/.gitlab-ci/test-flatpak-gtk4.sh @@ -11,4 +11,5 @@ export TEST_GTK_VERSION=4.0 python3 -m pip install --user pytest pytest-faulthandler coverage python3 setup.py build_tests python3 -m coverage run --context "${COV_KEY}" tests/runtests.py +python3 -m coverage lcov -o "${COV_DIR}/${COV_KEY}.py.lcov" chmod -R 777 "${COV_DIR}"
\ No newline at end of file diff --git a/.gitlab-ci/test-msys2.sh b/.gitlab-ci/test-msys2.sh index 8cd39afd..045fef17 100755 --- a/.gitlab-ci/test-msys2.sh +++ b/.gitlab-ci/test-msys2.sh @@ -47,6 +47,7 @@ lcov \ "${COV_DIR}/${COV_KEY}-baseline.lcov" MSYSTEM= python -m coverage run --context "${COV_KEY}" tests/runtests.py +MSYSTEM= python -m coverage lcov -o "${COV_DIR}/${COV_KEY}.py.lcov" lcov \ --config-file .gitlab-ci/lcovrc \ |