Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
wayland
wayland
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 96
    • Issues 96
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 25
    • Merge Requests 25
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • wayland
  • waylandwayland
  • Issues
  • #54

Closed
Open
Opened Aug 28, 2018 by Daniel Stone@danielsOwner0 of 6 tasks completed0/6 tasks

Widen CI coverage: 32-bit, ASan, etc

Our CI currently just does a very basic check that everything compiles and distcheck passes. There are a lot more checks we could potentially be running, including compiling on 32-bit (and/or big-endian?) systems, building with other compilers, using static analysers, and using sanitisers as well.

https://gitlab.freedesktop.org/daniels/wayland/commits/wip/2018-08/meson-ci-asan is an incomplete attempt at doing this, which needs rebasing and potentially separating from the Meson build as well.

It takes @pq's work to enable a 32-bit build with some small tweaks. It also adds support for building with clang, using clang's static analyser, ASan (address sanitiser: valgrind-ish), and UBSan (catches C undefined behaviour, e.g. signed int underflow).

This is not yet ready to merge. Before it gets merged, we should:

  • split the buildroot prep into another stage, which installs the dependencies then pushes a new container to the Docker registry, so each build stage can just reuse that instead of everything installing in parallel
  • more aggressively parameterise things with variables to cut down on boilerplate
  • figure out why on earth ASan is OK for me locally but fails in the Debian chroot
  • fix at least the low-hanging fruit of Clang analyser warnings
  • actually capture the Clang analyser output as an artifact (accidentally removed when moving to templated GitLab CI, oops)
  • add support for running tests under Valgrind (pretty trivial with Meson)

I'll keep working on this in the time I have, but I'm more than happy for someone to just pick this up and run with it.

Edited Aug 29, 2018 by Daniel Stone
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: wayland/wayland#54