[gnome-settings-daemon/wip/claudio/CI: 2/7] CI: add ASAN, MSAN, TSAN and UBSAN Sanitizers
- From: Benjamin Berg <bberg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/wip/claudio/CI: 2/7] CI: add ASAN, MSAN, TSAN and UBSAN Sanitizers
- Date: Mon, 4 Feb 2019 12:54:30 +0000 (UTC)
commit 98a4aae17d2a4cadec87e8153b60c686c5d2d640
Author: Claudio André <claudioandre br gmail com>
Date: Thu Jul 12 17:22:28 2018 -0300
CI: add ASAN, MSAN, TSAN and UBSAN Sanitizers
AddressSanitizer (or ASan) is a programming tool that detects memory
corruption bugs such as buffer overflows or use after free. AddressSanitizer
is based on compiler instrumentation.
MemorySanitizer (MSan) is a detector of uninitialized memory reads in C/C++ programs.
Uninitialized values occur when stack- or heap-allocated memory is read before
it is written.
ThreadSanitizer is a tool that detects data races.
UndefinedBehaviorSanitizer (UBSan) is a fast undefined behavior detector. UBSan
catches various kinds of undefined behavior, for example:
- Using misaligned or null pointer
- Signed integer overflow
- Conversion to, from, or between floating-point types which would overflow the
destination
The llvm.org states that Sanitizers have found thousands of bugs everywhere.
Sanitizers running during CI can prevent bugs from taking up residence. They
are helper tools to maintain bugs out.
.gitlab-ci.yml | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5eec8941..ce3663bb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,6 +2,7 @@ image: registry.gitlab.gnome.org/gnome/gnome-settings-daemon:fedora.dev
stages:
- build
- test
+ - manual
.Log files: &log_files [./*.log, _build/meson-logs/]
@@ -80,3 +81,34 @@ test:
echo "== Testing =="
meson test -C _build --verbose --no-stdsplit
fi
+
+# Runs the sanitizers [address, thread, undefined, and memory].
+.sanitizer: &sanitizer
+ <<: *save_build_logs
+ stage: manual
+ when: manual
+ script:
+ - *environment_information
+ - *build_procedure
+ - *run_tests
+
+asan:
+ <<: *sanitizer
+ variables:
+ BUILD_OPTS: "-Db_sanitize=address"
+
+tsan:
+ <<: *sanitizer
+ variables:
+ BUILD_OPTS: "-Db_sanitize=thread"
+
+ubsan:
+ <<: *sanitizer
+ variables:
+ BUILD_OPTS: "-Db_sanitize=undefined"
+
+msan:
+ <<: *sanitizer
+ variables:
+ BUILD_OPTS: "-Db_sanitize=memory"
+ CC: "clang"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]