jobs:
- job: ${{ parameters.name }}
  displayName: TSAN
  pool:
    vmImage: ubuntu-16.04

  steps:
  - template: azure-install-rust.yml
    parameters:
      rust_version: ${{ parameters.rust_version }}

  - script: |
      set -e

      export RUST_TEST_THREADS=1
      export ASAN_OPTIONS="detect_odr_violation=0 detect_leaks=0"
      export TSAN_OPTIONS="suppressions=`pwd`/ci/tsan"

      # Run address sanitizer
      RUSTFLAGS="-Z sanitizer=address" \
      cargo test --tests --target x86_64-unknown-linux-gnu

      # Run thread sanitizer
      RUSTFLAGS="-Z sanitizer=thread" \
      cargo test --tests --target x86_64-unknown-linux-gnu
    displayName: TSAN / MSAN