Update is_abandoned() test #454
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run tests, check code | |
on: [push, pull_request] | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: 1 | |
RUST_LOG: info | |
jobs: | |
tests: | |
strategy: | |
matrix: | |
include: | |
- os: macos-latest | |
- os: windows-latest | |
toolchain-suffix: -gnu | |
- os: windows-latest | |
toolchain-suffix: -msvc | |
- os: ubuntu-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Clone Git repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable${{ matrix.toolchain-suffix }} | |
- name: Run tests (all features) | |
run: | | |
cargo test --workspace --all-features | |
- name: Run tests (no features) | |
run: | | |
cargo test --workspace --no-default-features | |
- name: Test benchmarks | |
run: | | |
cargo test --benches | |
msrv: | |
strategy: | |
matrix: | |
rust-version: ["1.38"] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone Git repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Rust version ${{ matrix.rust-version }} | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust-version }} | |
- name: Check whether it compiles | |
run: | | |
cargo check --all-features --verbose | |
check-code: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone Git repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
components: rustfmt, clippy | |
- name: rustfmt | |
run: | | |
cargo fmt --all --check | |
- name: clippy | |
run: | | |
cargo clippy --all-targets --all-features -- -D warnings | |
- name: Build docs | |
run: | | |
cargo rustdoc --all-features -- -D warnings | |
- name: Upload docs | |
uses: actions/upload-artifact@v3 | |
with: | |
name: docs | |
path: target/doc/* | |
- name: packaging | |
run: | | |
cargo package --verbose | |
no_std: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone Git repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: stable | |
- name: Install cargo-nono | |
# --locked is recommended, see https://github.com/hobofan/cargo-nono/pull/68 | |
run: | | |
cargo install cargo-nono --locked | |
- name: Check no_std compatibility | |
run: | | |
cargo nono check | |
miri: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone Git repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
components: miri | |
- name: Run Miri | |
run: | | |
cargo miri test | |
- name: Run Miri again (with miri-preemption-rate=0) | |
env: | |
MIRIFLAGS: "-Zmiri-preemption-rate=0" | |
# For now, this is only run on one test, see https://github.com/mgeier/rtrb/issues/114 | |
run: | | |
cargo miri test no_race_with_is_abandoned | |
thread-sanitizer: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone Git repository | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Install Rust | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: nightly | |
components: rust-src | |
- name: Run ThreadSanitizer | |
env: | |
RUSTFLAGS: "-Z sanitizer=thread" | |
# "no_race_with_is_abandoned" is skipped because ThreadSanitizer | |
# reports false positives when using standalone fences, | |
# see https://github.com/google/sanitizers/issues/1415. | |
run: | | |
cargo test --tests -Z build-std --target x86_64-unknown-linux-gnu -- --skip no_race_with_is_abandoned |