#!/bin/bash

tests_dir=tests
regression_tests_dir=regression_tests

# NOTE:
# If you create new tests, exclude lines with timing information from the output
# like this:
# grep -v '^File loaded in [0-9.]\+s$\|^\s*CPU: [0-9.]\+s$'

free_mem_gb="$(free -g \
    | sed -ne 's/^-\/+ buffers\/cache: *[0-9]* *\([0-9]*\)/\1/p')"

# allow at least one thread, and more if there is at least 1gb of free memory
# for each thread
mem_max_threads="$(( $free_mem_gb < 1 ? 1 : $free_mem_gb ))"

cores="$(parallel --number-of-cores)"

threads="$(( $mem_max_threads < $cores ? $mem_max_threads : $cores ))"

parallel --gnu -j"$threads" bash ./run_test.bash ::: \
    "${tests_dir}"/*.bat \
    "${regression_tests_dir}"/*.bat
