Skip to content

[runtime] Add pacer Feature #5141

[runtime] Add pacer Feature

[runtime] Add pacer Feature #5141

Workflow file for this run

name: Slow
on:
push:
branches: [ "main" ]
pull_request:
merge_group:
permissions:
contents: read
concurrency:
group: tests-slow-${{ github.head_ref || github.ref_name || github.run_id }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
env:
CARGO_TERM_COLOR: always
FUZZ_VERSION: 0.12.0
NIGHTLY_VERSION: nightly
jobs:
Tests:
name: "Tests (os: ${{ matrix.os }}, flags: \"${{ matrix.flags }}\") (partition: ${{ matrix.partition }}/4)"
runs-on: ${{ matrix.os }}
timeout-minutes: 180
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
partition: [1, 2, 3, 4]
flags:
- "--features commonware-runtime/iouring-storage"
- "--features commonware-runtime/iouring-network"
- "--features commonware-runtime/pacer"
- "--no-default-features"
- ""
exclude:
# Only run io_uring features on Ubuntu
- os: windows-latest
flags: "--features commonware-runtime/iouring-storage"
- os: macos-latest
flags: "--features commonware-runtime/iouring-storage"
- os: windows-latest
flags: "--features commonware-runtime/iouring-network"
- os: macos-latest
flags: "--features commonware-runtime/iouring-network"
# Only run pacer feature on Ubuntu
- os: windows-latest
flags: "--features commonware-runtime/pacer"
- os: macos-latest
flags: "--features commonware-runtime/pacer"
# Only run --no-default-features on Ubuntu
- os: windows-latest
flags: "--no-default-features"
- os: macos-latest
flags: "--no-default-features"
steps:
- name: Checkout repository
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
- name: Run setup
uses: ./.github/actions/setup
- name: Install just & nextest
uses: taiki-e/install-action@0c5db7f7f897c03b771660e91d065338615679f4 # v2.60.0
with:
tool: [email protected],[email protected]
- name: Run ignored tests
run: just test ${{ matrix.flags }} --partition hash:${{matrix.partition}}/4 --verbose -- --ignored
Tests-Gate:
name: "Slow-Tests"
runs-on: ubuntu-latest
needs: Tests
if: always()
steps:
- name: Check test results
run: |
if [ "${{ needs.Tests.result }}" != "success" ]; then
echo "Tests failed or were cancelled"
exit 1
fi
echo "All tests passed successfully!"
Benchmarks:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- package: commonware-cryptography
cargo_flags: ""
- package: commonware-storage
cargo_flags: ""
- package: commonware-storage
cargo_flags: "--features commonware-runtime/iouring-storage" # Additional features can be added here
- package: commonware-coding
cargo_flags: ""
steps:
- name: Checkout repository
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
- name: Install nightly Rust toolchain
run: rustup toolchain install ${{ env.NIGHTLY_VERSION }}
- name: Run setup
uses: ./.github/actions/setup
- name: Install just
uses: taiki-e/install-action@0c5db7f7f897c03b771660e91d065338615679f4 # v2.60.0
with:
tool: [email protected]
- name: Test benchmarks
run: just test-benches ${{ matrix.package }} ${{ matrix.cargo_flags }}
Fuzz:
runs-on: ubuntu-latest
timeout-minutes: 180
strategy:
matrix:
fuzz_dir: [broadcast/fuzz, codec/fuzz, coding/fuzz, collector/fuzz, cryptography/fuzz, runtime/fuzz, storage/fuzz, stream/fuzz, utils/fuzz]
steps:
- name: Checkout repository
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
- name: Install nightly Rust toolchain
run: rustup toolchain install ${{ env.NIGHTLY_VERSION }}
- name: Get Rust version
id: rust-version
run: echo "rust_version=$(rustc +${{ env.NIGHTLY_VERSION }} --version)" >> "$GITHUB_OUTPUT"
- name: Run setup
uses: ./.github/actions/setup
- name: Cache cargo-fuzz
id: cargo-fuzz-cache
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
with:
path: ~/.cargo/bin/cargo-fuzz
key: ${{ runner.os }}-${{ env.FUZZ_VERSION }}-cargo-fuzz-${{ steps.rust-version.outputs.rust_version }}
- name: Install cargo-fuzz
if: steps.cargo-fuzz-cache.outputs.cache-hit != 'true'
run: cargo +${{ env.NIGHTLY_VERSION }} install cargo-fuzz --version ${{ env.FUZZ_VERSION }}
- name: Install just
uses: taiki-e/install-action@0c5db7f7f897c03b771660e91d065338615679f4 # v2.60.0
with:
tool: [email protected]
- name: Test all targets
run: just fuzz ${{ matrix.fuzz_dir }} 60 +${{ env.NIGHTLY_VERSION }}