#!/bin/bash

# Script that exactly mimics test_individual.sh behavior
# Usage: ./debug_benchmark_devnull.sh [runs]

RUNS=${1:-20}
TEST_CMD="cargo test --test submit_to_main_thread_benchmark"

SUCCESS_COUNT=0
FAILURE_COUNT=0
TIMEOUT_COUNT=0

echo "Running '$TEST_CMD' $RUNS times..."
echo "Started at: $(date)"
echo

for i in $(seq 1 $RUNS); do
    echo -n "Run $i/$RUNS: "
    
    # Run exactly like the original script
    timeout 30s $TEST_CMD --quiet > /dev/null 2>&1
    EXIT_CODE=$?
    
    if [ $EXIT_CODE -eq 0 ]; then
        SUCCESS_COUNT=$((SUCCESS_COUNT + 1))
        echo "PASS"
    elif [ $EXIT_CODE -eq 124 ]; then
        TIMEOUT_COUNT=$((TIMEOUT_COUNT + 1))
        echo "TIMEOUT"
    else
        FAILURE_COUNT=$((FAILURE_COUNT + 1))
        echo "FAIL"
    fi
done

echo
echo "=== RESULTS FOR benchmark ==="
echo "Total runs: $RUNS"
echo "Successes: $SUCCESS_COUNT"
echo "Failures: $FAILURE_COUNT"
echo "Timeouts: $TIMEOUT_COUNT"
echo "Success rate: $(echo "scale=2; $SUCCESS_COUNT * 100 / $RUNS" | bc -l)%"
echo "Failure rate: $(echo "scale=2; $FAILURE_COUNT * 100 / $RUNS" | bc -l)%"
echo "Timeout rate: $(echo "scale=2; $TIMEOUT_COUNT * 100 / $RUNS" | bc -l)%"
echo "Finished at: $(date)"