On Thu, May 06, 2021 at 17:08:38 +0200, Tim Wiederhake wrote:
meson supports the following sanitizers: "address" (e.g.
out-of-bounds
memory access, use-after-free, etc.), "thread" (data races),
"undefined"
(e.g. signed integer overflow), and "memory" (use of uninitialized
memory). Note that not all sanitizers are supported by all compilers,
and that more sanitizers exist.
Not all sanitizers can be enabled at the same time, but "address" and
"undefined" can. Both thread and memory sanitizers require an instrumented
build of all dependencies, including libc.
gcc and clang use different implementations of these sanitizers and
have proven to find different issues. Create CI jobs for both.
Signed-off-by: Tim Wiederhake <twiederh(a)redhat.com>
---
.gitlab-ci.yml | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 89f618e678..4de4c30d7f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -73,6 +73,26 @@ stages:
rpmbuild --nodeps -ta build/meson-dist/libvirt-*.tar.xz;
fi
+.sanitizer_build_job:
+ stage: builds
+ image: $CI_REGISTRY_IMAGE/ci-ubuntu-2004:latest
+ needs:
+ - x64-ubuntu-2004-container
+ rules:
+ - if: "$TEMPORARILY_DISABLED"
+ allow_failure: true
Does this mean that if $TEMPORARILY_DISABLED is not passed then the
sanitizer error causes a pipeline failure?
If yes then I'd like to know how we are going to waive false-positives
as modifying the code is the wrong action in such case.