mirror of
https://github.com/tokio-rs/bytes.git
synced 2026-08-28 00:00:17 +02:00
Use ThreadSanitizer CI setup that avoids false positives (#406)
This commit is contained in:
@@ -120,7 +120,9 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Install Rust
|
- name: Install Rust
|
||||||
run: rustup update nightly && rustup default nightly
|
run: rustup update nightly && rustup default nightly
|
||||||
- name: TSAN / MSAN
|
- name: Install rust-src
|
||||||
|
run: rustup component add rust-src
|
||||||
|
- name: ASAN / TSAN
|
||||||
run: . ci/tsan.sh
|
run: . ci/tsan.sh
|
||||||
|
|
||||||
# Loom
|
# Loom
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
# TSAN suppressions file for `bytes`
|
|
||||||
|
|
||||||
# TSAN does not understand fences and `Arc::drop` is implemented using a fence.
|
|
||||||
# This causes many false positives.
|
|
||||||
race:Arc*drop
|
|
||||||
race:arc*Weak*drop
|
|
||||||
|
|
||||||
# `std` mpsc is not used in any Bytes code base. This race is triggered by some
|
|
||||||
# rust runtime logic.
|
|
||||||
race:std*mpsc_queue
|
|
||||||
|
|
||||||
# Some test runtime races. Allocation should be race free
|
|
||||||
race:alloc::alloc
|
|
||||||
|
|
||||||
# Not sure why this is warning, but it is in the test harness and not the library.
|
|
||||||
race:TestEvent*clone
|
|
||||||
race:test::run_tests_console::*closure
|
|
||||||
|
|
||||||
# Probably more fences in std.
|
|
||||||
race:__call_tls_dtors
|
|
||||||
|
|
||||||
# This ignores a false positive caused by `thread::park()`/`thread::unpark()`.
|
|
||||||
# See: https://github.com/rust-lang/rust/pull/54806#issuecomment-436193353
|
|
||||||
race:pthread_cond_destroy
|
|
||||||
+1
-3
@@ -2,9 +2,7 @@
|
|||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
export RUST_TEST_THREADS=1
|
|
||||||
export ASAN_OPTIONS="detect_odr_violation=0 detect_leaks=0"
|
export ASAN_OPTIONS="detect_odr_violation=0 detect_leaks=0"
|
||||||
export TSAN_OPTIONS="suppressions=$(pwd)/ci/tsan"
|
|
||||||
|
|
||||||
# Run address sanitizer
|
# Run address sanitizer
|
||||||
RUSTFLAGS="-Z sanitizer=address" \
|
RUSTFLAGS="-Z sanitizer=address" \
|
||||||
@@ -12,4 +10,4 @@ cargo test --target x86_64-unknown-linux-gnu --test test_bytes --test test_buf -
|
|||||||
|
|
||||||
# Run thread sanitizer
|
# Run thread sanitizer
|
||||||
RUSTFLAGS="-Z sanitizer=thread" \
|
RUSTFLAGS="-Z sanitizer=thread" \
|
||||||
cargo test --target x86_64-unknown-linux-gnu --test test_bytes --test test_buf --test test_buf_mut
|
cargo -Zbuild-std test --target x86_64-unknown-linux-gnu --test test_bytes --test test_buf --test test_buf_mut
|
||||||
|
|||||||
Reference in New Issue
Block a user