set -e

# MPI tests are set up to run on 3 processes.
N_MPI=3
export OMPI_MCA_plm_rsh_agent=/bin/false
export OMPI_MCA_rmaps_base_oversubscribe=1
export OMPI_MCA_btl_base_warn_component_unused=0

DEB_HOST_ARCH=$( dpkg-architecture -qDEB_HOST_ARCH )

ARCH_SKIP_TESTS_LIST="arm64 i386 ppc64el s390x"

case " ${ARCH_SKIP_TESTS_LIST} " in
  *\ ${DEB_HOST_ARCH}\ *) echo "skipping selected tests on ${DEB_HOST_ARCH}"
     TESTS_SKIPPED="test_compute_entity_collisions_2d"
     MULTIPLE_TESTS_SKIPPED="test_compute_entity_collisions_3d test_meshes_on_diagonal test_meshes_with_boundary_edge_overlap_2d test_volume_2d"

     for test in $MULTIPLE_TESTS_SKIPPED; do
       TESTS_SKIPPED="$TESTS_SKIPPED or $test"
     done
     TEST_KEYWORD="not (${TESTS_SKIPPED})"
     echo skipping tests ${TESTS_SKIPPED};;

  *) TEST_KEYWORD=;;
esac

echo "=== python unit test (serial) ==="
python3 -m pytest --durations=20 -k "${TEST_KEYWORD}" python/test/unit/

echo "=== python unit test (MPI) ==="
mpirun -n ${N_MPI} python3 -m pytest --durations=20 python/test/unit/ --color=no
