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

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
ARTIFACTS_DIR="${ARTIFACTS_DIR:-$ROOT_DIR/artifacts}"
REPORT_PREFIX="${REPORT_PREFIX:-thread_per_core_gate}"
OUT_JSON="${OUT_JSON:-$ARTIFACTS_DIR/${REPORT_PREFIX}_report.json}"
OUT_MD="${OUT_MD:-$ARTIFACTS_DIR/${REPORT_PREFIX}_report.md}"

NODES="${NODES:-4000}"
ITERATIONS="${ITERATIONS:-20}"
LIMIT="${LIMIT:-500}"
MAX_SHARD_LOCAL_P95_US="${MAX_SHARD_LOCAL_P95_US:-50000}"
MAX_CROSS_SHARD_P95_US="${MAX_CROSS_SHARD_P95_US:-100000}"
MIN_FANOUT_THROUGHPUT_RATIO="${MIN_FANOUT_THROUGHPUT_RATIO:-0.4}"

mkdir -p "$ARTIFACTS_DIR"

NODES="$NODES" \
ITERATIONS="$ITERATIONS" \
LIMIT="$LIMIT" \
MAX_SHARD_LOCAL_P95_US="$MAX_SHARD_LOCAL_P95_US" \
MAX_CROSS_SHARD_P95_US="$MAX_CROSS_SHARD_P95_US" \
MIN_FANOUT_THROUGHPUT_RATIO="$MIN_FANOUT_THROUGHPUT_RATIO" \
OUT_JSON="$OUT_JSON" \
OUT_MD="$OUT_MD" \
cargo test --test thread_per_core_gate -- --nocapture

echo "json_report: $OUT_JSON"
echo "md_report: $OUT_MD"
