#!/bin/bash

# Test if parallel vs sequential test execution affects reliability
# Usage: ./test_parallel_vs_sequential.sh [runs]

RUNS=${1:-30}

echo "Testing parallel vs sequential test execution..."
echo "Runs: $RUNS"
echo "Started at: $(date)"
echo

test_mode() {
    local mode="$1"
    local extra_args="$2"
    local runs="$3"
    
    echo "=== Testing: $mode ==="
    echo "Extra args: $extra_args"
    
    local success=0
    local fail=0
    local timeout=0
    
    for i in $(seq 1 $runs); do
        echo -n "  Run $i/$runs: "
        
        timeout 60s cargo test --quiet -- $extra_args >/dev/null 2>&1
        case $? in
            0) success=$((success + 1)); echo "PASS" ;;
            124) timeout=$((timeout + 1)); echo "TIMEOUT" ;;
            *) fail=$((fail + 1)); echo "FAIL" ;;
        esac
    done
    
    echo "  Results: $success PASS, $fail FAIL, $timeout TIMEOUT"
    echo "  Success rate: $(echo "scale=1; $success * 100 / $runs" | bc -l)%"
    echo
}

# Test different execution modes
test_mode "Default (parallel)" "" $RUNS
test_mode "Sequential (--test-threads=1)" "--test-threads=1" $RUNS

echo "Finished at: $(date)"