#!/usr/bin/env bash
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SAMPLE_BYTES="${CMUX_DIFF_BENCH_BYTES:-16777216}"
ITERATIONS="${CMUX_DIFF_BENCH_ITERATIONS:-20}"
export CMUX_DIFF_BENCH_MAX_MANIFEST_P95_US="${CMUX_DIFF_BENCH_MAX_MANIFEST_P95_US:-1000}"
export CMUX_DIFF_BENCH_MIN_READ_MIBPS="${CMUX_DIFF_BENCH_MIN_READ_MIBPS:-500}"
export CMUX_DIFF_BENCH_MAX_STREAM_P95_MS="${CMUX_DIFF_BENCH_MAX_STREAM_P95_MS:-250}"

"${ROOT}/scripts/run-diff-sidecar-cargo.sh" run \
  --quiet \
  --release \
  --locked \
  --manifest-path "${ROOT}/Native/DiffSidecar/Cargo.toml" \
  --bin cmux-diff-sidecar \
  --features benchmark \
  -- benchmark "$SAMPLE_BYTES" "$ITERATIONS"

(
  cd "${ROOT}/webviews"
  CMUX_DIFF_BENCH_ITERATIONS="${CMUX_DIFF_WEB_BENCH_ITERATIONS:-5}" \
    CMUX_DIFF_BENCH_RENDER_APP="${CMUX_DIFF_BENCH_RENDER_APP:-1}" \
    bun run benchmark
)