#!/usr/bin/env bash

set -e

thisdir=$(cd $(dirname $0) && pwd)

if [ -z ${MMORF_BUILD} ]; then
  MMORF_BUILD=GPU
fi

# some tests are affected by FSL_NUM_THREADS
# (see test_MMORFOptions.cpp).
unset FSL_NUM_THREADS

echo "Running tests for ${MMORF_BUILD} build"

args=(-d yes --reporter mmorf -#)

selection=""
for fname in "$@"; do
  base=$(basename ${fname})
  base=${base%.*}

  if [ "${selection}" != "" ]; then
    selection="${selection},[#${base}]"
  else
    selection="[#${base}]"
  fi
done
if [ "${selection}" != "" ]; then
  args+=("${selection}")
fi

if [ ! -z ${TEST_COVERAGE} ]; then
  make clean
  make -C ${thisdir}/.. tests MMORF_BUILD=${MMORF_BUILD} TEST_COVERAGE=1
else
  make -C ${thisdir}/.. tests MMORF_BUILD=${MMORF_BUILD}
fi

echo "${thisdir}/run_tests_${MMORF_BUILD} ${args[@]}"
${thisdir}/run_tests_${MMORF_BUILD} ${args[@]}


if [ ! -z ${TEST_COVERAGE} ]; then
  make -C ${thisdir}/.. coverage MMORF_BUILD=${MMORF_BUILD}
fi
