1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#!/bin/bash
set -e
# allow for the possibility that MPI tests are run
# on systems with a single CPU
export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe
# OpenMPI 5 often sends uphelpful warnings to stderr, which are not actually errors:
# opal/mca/btl/tcp/btl_tcp_proc.c:266:mca_btl_tcp_proc_create_interface_graph] Unable to find reachable pairing between local and remote interfaces
# This env variable was identified as a workaround in Bug#1087784, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1087784
export OMPI_MCA_btl_tcp_if_include=lo
DEB_HOST_ARCH=$( dpkg-architecture -qDEB_HOST_ARCH )
# tests randomly time out (both serial and MPI), see Bug#1124571
TEST_SELECTION="not (test_original_checkpoint or test_checkpointing)"
# s390x segfaults in all known tests. Something is amiss.
# Adios2 upstream acknowledges big-endian support is not tested.
# (some adios2 and dolfinx VTX tests fail, some pass)
# Assume all big-endian systems will fail adios4dolfinx and skip them all.
DEB_HOST_ARCH_ENDIAN=$(dpkg-architecture -qDEB_HOST_ARCH_ENDIAN)
if [ "x${DEB_HOST_ARCH_ENDIAN}" = "xbig" ]; then
echo "Adios2 support is not tested on big-endian systems."
else
n_proc=`nproc`
echo "${n_proc} CPUs are available"
for pyver in `py3versions -sv`; do
# By default, pytest tmp_path retains the temporary directory for the last 3
# pytest invocations.
# Using the --basetemp option will remove the directory before every run,
# effectively meaning the temporary directories of only the most recent run
# will be kept. We definitely do not want to keep old runs, because they may
# result in adios4dolfinx trying to read in output files generated with a
# different PETSc scalar type (real vs complex).
${MPIEXEC} python$pyver -m pytest -v --basetemp=${AUTOPKGTEST_TMP} --color=no -k "${TEST_SELECTION}" tests
done
fi
|