#!/usr/bin/env bash

# https://stackoverflow.com/questions/360201/how-do-i-kill-background-processes-jobs-when-my-shell-script-exits
trap 'kill -9 $(jobs -p)' EXIT

function thread()
{
    while true; do
        ./clickhouse-test --client-option="query-fuzzer-runs=10" --order random 2>&1 | awk '/^\w+:/ { printf("\033[0;%s%sm \033[0m", ('$1' % 2 ? "4" : "10"), (int('$1' / 2) % 8)) }'
    done
}

# https://stackoverflow.com/questions/9954794/execute-a-shell-function-with-timeout
export -f thread;

NUM_THREADS=${1:-"16"}
TIMEOUT=${2:-"300"}

for i in $(seq 1 $NUM_THREADS); do
    timeout $TIMEOUT bash -c "thread $i" 2> /dev/null &
done

wait