async-ebpf 0.3.0

Async-friendly, fully preemptive userspace eBPF runtime
Documentation
name: CI

on:
  pull_request:
  push:

env:
  CARGO_TERM_COLOR: always

jobs:
  unit-tests:
    name: Unit tests
    runs-on: ubuntu-24.04
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Install native dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y --no-install-recommends \
            build-essential \
            clang \
            cmake \
            libclang-dev \
            llvm

      - name: Run unit tests
        run: cargo test --features testing

  fuzz:
    name: Fuzz (${{ matrix.arch }})
    runs-on: ${{ matrix.runner }}
    timeout-minutes: 30
    env:
      ASAN_OPTIONS: detect_leaks=0
    strategy:
      fail-fast: false
      matrix:
        include:
          - arch: x86_64
            runner: ubuntu-24.04
          - arch: aarch64
            runner: ubuntu-24.04-arm
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Install native dependencies
        run: |
          sudo apt-get update
          sudo apt-get install -y --no-install-recommends \
            build-essential \
            clang \
            cmake \
            libclang-dev \
            llvm

      - name: Install nightly Rust
        run: rustup toolchain install nightly --profile minimal

      - name: Install cargo-fuzz
        run: cargo install cargo-fuzz --locked

      - name: Fuzz JIT memory safety
        run: cargo +nightly fuzz run jit_memory_safety -- -runs=10000

      - name: Fuzz host pointer escape
        run: cargo +nightly fuzz run host_pointer_escape -- -runs=10000