Skip to content

Incorporate some lint checks into `meson test`

Simon McVittie requested to merge wip/smcv/lint into main

As briefly discussed with @pwithnall on !3886 (merged). This is loosely based on how we handle this in steam-runtime-tools and other Steam-related projects that I'm working on.

  • Incorporate some lint checks into meson test

    This will make it easier and more obvious for developers to run them locally: I'm sure I'm not the only developer who had assumed that .gitlab-ci/ is private to the CI environment and inappropriate (or perhaps even destructive) to run on a developer/user system.

    The lint checks are automatically skipped (with TAP SKIP syntax) if we are not in a git checkout, or if git or the lint tool is missing. They can also be disabled explicitly with meson test --no-suite=lint, which downstream distributions will probably want to do.

    By default, most lint checks are reported as an "expected failure" (with TAP TODO syntax) rather than a hard failure, because they do not indicate a functional problem with GLib and there is a tendency for lint tools to introduce additional checks or become more strict over time. Developers can override this by configuring with -Dwerror=true (which also makes compiler warnings into fatal errors), or by running the test suite like LINT_WARNINGS_ARE_ERRORS=1 meson test --suite=lint.

    One exception to this is tests/check-missing-install-tag.py, which is checking a functionally significant feature of our build system, and seems like it is unlikely to have false positives: if that one fails, it is reported as a hard failure.

    run-style-check-diff.sh and run-check-todos.sh are not currently given this treatment, because they require search-common-ancestor.sh, which uses Gitlab-CI-specific information to find out which commits are in-scope for checking.

  • CI: Extend submodule workaround to most jobs that run the test suite

  • CI: Run all style/lint checks before failing

    Even if we get warnings from the first lint check, we probably want to see the warnings from later lint checks too, to reduce the number of round-trips.

Edited by Simon McVittie

Merge request reports