on: push: branches: ["master", "tokio-*.x"] pull_request: types: [labeled, opened, synchronize, reopened] branches: ["master", "tokio-*.x"] name: Loom env: RUSTFLAGS: -Dwarnings RUST_BACKTRACE: 1 # Change to specific Rust release to pin rust_stable: stable permissions: contents: read jobs: loom: name: loom # base_ref is null when it's not a pull request if: github.repository_owner == 'tokio-rs' && (contains(github.event.pull_request.labels.*.name, 'R-loom') || (github.base_ref == null)) runs-on: ubuntu-latest strategy: matrix: include: - scope: --skip loom_pool max_preemptions: 2 - scope: loom_pool::group_a max_preemptions: 2 - scope: loom_pool::group_b max_preemptions: 2 - scope: loom_pool::group_c max_preemptions: 2 - scope: loom_pool::group_d max_preemptions: 2 - scope: time::driver max_preemptions: 2 steps: - uses: actions/checkout@v3 - name: Install Rust ${{ env.rust_stable }} uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.rust_stable }} - uses: Swatinem/rust-cache@v2 - name: loom ${{ matrix.scope }} run: cargo test --lib --release --features full -- --nocapture $SCOPE working-directory: tokio env: RUSTFLAGS: --cfg loom --cfg tokio_unstable -Dwarnings -C debug-assertions LOOM_MAX_PREEMPTIONS: ${{ matrix.max_preemptions }} LOOM_MAX_BRANCHES: 10000 SCOPE: ${{ matrix.scope }}