chore: add ASAN/MSAN/TSAN/SAFESTACK to CI (#740)

* feature: Add ASAN/TSAN to CI

* feature: Add SAFESTACK sanitizer

* feature: Add MEMORY sanitizer

* fix: Try to fix thread unsafety by leaking libraries

* fix: Suppress MSAN errors and clarify their future fix

* fix: Instead of supressing fuser errors, use patched version

* fix: Properly lazily initialize controllers

* fix: Add comment explaining why there is allowlist for bindings

* fix: Upgrade used nightly

* fix: Try to fix sanitizer compilation error

* Revert "fix: Try to fix sanitizer compilation error"

This reverts commit 47514158d5.

* Revert "fix: Upgrade used nightly"

This reverts commit c3dd005c7e.

* chore: Instead of personal fork revision, use official repo

* chore: Refactor to not pass arguments for statics

* chore: Add note for loading of libs

* chore: Try to fix codecov action

* chore: Fix compilation problem
This commit is contained in:
Alik Aslanyan authored and GitHub committed 2025-09-10 21:22:30 +03:00
1 parent ef3dfe9ea6
commit cba0786004
10 files changed
+122 -63

No files matched your search

+29 -2
View File
@@ -73,7 +73,8 @@ jobs:
run: cargo llvm-cov --no-fail-fast --include-ffi --workspace --lcov --output-path lcov.info
- name: Upload to Codecov
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5.5.1
continue-on-error: true
with:
files: lcov.info
fail_ci_if_error: true
@@ -100,6 +101,32 @@ jobs:
- name: Run tests inside Miri
run: cargo +nightly-2025-01-03 miri test
test-sanitizers:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
sanitizer: [address, thread, safestack, memory]
env:
LSAN_OPTIONS: fast_unwind_on_malloc=0:max_leak_stack_depth=50:print_suppressions=1
ASAN_OPTIONS: detect_leaks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1
steps:
- uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2
- uses: ./.github/actions/setup-environment
- name: Install Nightly Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly-2025-01-03
override: true
components: rust-src
- name: Run tests with ${{ matrix.sanitizer }}
run: |
export RUSTFLAGS="-Zsanitizer=${{ matrix.sanitizer }}"
cargo +nightly-2025-01-03 -Zbuild-std test --target x86_64-unknown-linux-gnu --verbose
check-features-powerset:
runs-on: ubuntu-24.04
if: ${{ github.event_name == 'pull_request' && !github.event.pull_request.draft }}
@@ -113,4 +140,4 @@ jobs:
- uses: ./.github/actions/setup-environment
- uses: taiki-e/install-action@cargo-hack
- name: Run cargo hack ${{ matrix.command }}
run: cargo hack ${{ matrix.command }}
run: cargo hack ${{ matrix.command }}