#!/bin/bash
set -e

DEB_HOST_ARCH_ENDIAN=$( dpkg-architecture -qDEB_HOST_ARCH_ENDIAN )

declare -a SKIP_TEST_LIST

# docs are not built, so skip doc tests
SKIP_TEST_LIST=("${SKIP_TEST_LIST[@]}" test_every_public_function_has_a_guide_entry)

# adios2 is not well tested in bigendian systems and fails
if [ ${DEB_HOST_ARCH_ENDIAN} = "big" ]; then
   SKIP_TEST_LIST=("${SKIP_TEST_LIST[@]}" adios)
fi

# specific tests may define more skips in EXTRA_SKIP_TEST_LIST (not an array)
SKIP_TEST_LIST=("${SKIP_TEST_LIST[@]}" ${EXTRA_SKIP_TEST_LIST})

TEST_SELECTION=""
for t in ${SKIP_TEST_LIST[@]}; do
    if [ "x${TEST_SELECTION}" = "x" ]; then
        TEST_SELECTION=$t
    else
        TEST_SELECTION="${TEST_SELECTION} or $t"
    fi
done
if [ "x${TEST_SELECTION}" != "x" ]; then
    TEST_SELECTION="not ( ${TEST_SELECTION} )"
    echo "skipping tests: ${TEST_SELECTION}"
fi

n_proc=`nproc`
echo "${n_proc} CPUs are available"
for pyver in `py3versions -sv`; do
    ${MPIEXEC} python${pyver} -m pytest -v --color=no -k "${TEST_SELECTION}" tests
done
