diff options
Diffstat (limited to 'third_party/rust/cubeb-coreaudio/run_sanitizers.sh')
-rwxr-xr-x | third_party/rust/cubeb-coreaudio/run_sanitizers.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/third_party/rust/cubeb-coreaudio/run_sanitizers.sh b/third_party/rust/cubeb-coreaudio/run_sanitizers.sh new file mode 100755 index 0000000000..42992f2a41 --- /dev/null +++ b/third_party/rust/cubeb-coreaudio/run_sanitizers.sh @@ -0,0 +1,27 @@ +# The option `Z` is only accepted on the nightly compiler +# so changing to nightly toolchain by `rustup default nightly` is required. + +# See: https://github.com/rust-lang/rust/issues/39699 for more sanitizer support. + +toolchain=$(rustup default) +echo "\nUse Rust toolchain: $toolchain" + +if [[ $toolchain != nightly* ]]; then + echo "The sanitizer is only available on Rust Nightly only. Skip." + exit +fi + +# Bail out once getting an error. +set -e + +# Ideally, sanitizers should be ("address" "leak" "memory" "thread") but +# - `memory`: It doesn't works with target x86_64-apple-darwin +# - `leak`: Get some errors that are out of our control. See: +# https://github.com/mozilla/cubeb-coreaudio-rs/issues/45#issuecomment-591642931 +sanitizers=("address" "thread") +for san in "${sanitizers[@]}" +do + San="$(tr '[:lower:]' '[:upper:]' <<< ${san:0:1})${san:1}" + echo "\n\nRun ${San}Sanitizer\n------------------------------" + RUSTFLAGS="-Z sanitizer=${san}" sh run_tests.sh +done |