name: Unit Tests
on:
workflow_dispatch:
push:
branches: ["master"]
pull_request:
branches: ["master"]
jobs:
lints:
env:
RUSTFLAGS: "-D warnings"
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
arch: x86_64
- os: ubuntu-24.04-arm
arch: aarch64
- os: macos-latest
arch: aarch64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
with:
key: rust-${{ runner.os }}-${{ matrix.arch }}-stable
- name: Cargo check (lib)
run: cargo check
- name: Cargo check (tests)
run: cargo check --tests
- name: Cargo check (examples)
run: cargo check --examples
linux:
needs: lints
env:
RUSTFLAGS: "-D warnings"
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
arch: x86_64
- os: ubuntu-22.04
arch: x86_64
- os: ubuntu-24.04-arm
arch: aarch64
- os: ubuntu-22.04-arm
arch: aarch64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
with:
key: rust-${{ runner.os }}-${{ matrix.arch }}-stable
- run: cargo test --release -- --nocapture
- name: Example (FrozenFile)
run: |
cargo run --release --example ff w
cargo run --release --example ff r
- name: Example (FrozenMMap)
run: |
cargo run --release --example fm
- name: Example (Crc32)
run: |
cargo run --release --example crc
- name: Example (BPool)
run: |
cargo run --release --example bp
- name: Example (MPSCQ)
run: |
cargo run --release --example mq
- name: Example (FrozenPipe)
run: |
cargo run --release --example fp
macos:
needs: lints
env:
RUSTFLAGS: "-D warnings"
strategy:
fail-fast: false
matrix:
include:
- os: macos-14
arch: aarch64
- os: macos-latest
arch: aarch64
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
- uses: Swatinem/rust-cache@v2
with:
key: rust-${{ runner.os }}-${{ matrix.arch }}-stable
- run: cargo test --release -- --nocapture
- name: Example (FrozenFile)
run: |
cargo run --release --example ff w
cargo run --release --example ff r
- name: Example (FrozenMMap)
run: |
cargo run --release --example fm
- name: Example (Crc32)
run: |
cargo run --release --example crc
- name: Example (BPool)
run: |
cargo run --release --example bp
- name: Example (MPSCQ)
run: |
cargo run --release --example mq
- name: Example (FrozenPipe)
run: |
cargo run --release --example fp