FENICSX="ufl basix ffcx dolfinx"

# dolfinx invokes MPI, so ignore OpenFabrics transport warnings
export OMPI_MCA_btl_base_warn_component_unused=0

for pyver in `py3versions -vs`; do
    echo "Testing python $pyver"
    for fenics_component in ${FENICSX}; do
	python$pyver -c "import ${fenics_component}; print('imported ${fenics_component}', ${fenics_component}.__version__)"
    done

    # dolfinx_mpc does not build on mipsen
    ARCH_NO_DOLFINX_MPC="mips64el mipsel"
    DEB_HOST_ARCH=$(dpkg-architecture -q DEB_HOST_ARCH)
    case " ${ARCH_NO_DOLFINX_MPC} " in \
	*\ ${DEB_HOST_ARCH}\ *) echo "dolfinx_mpc is not available on ${DEB_HOST_ARCH}" ;;
	# note module 'dolfinx_mpc' has no attribute '__version__'
	*) python$pyver -c "import dolfinx_mpc; print('imported dolfinx_mpc')" ;;
    esac

    # adios2 is only available on 64-bit architectures
    DEB_HOST_ARCH_BITS=$(dpkg-architecture -q DEB_HOST_ARCH_BITS)
    case ${DEB_HOST_ARCH_BITS} in \
	64) python$pyver -c "import adios4dolfinx; print('imported adios4dolfinx', adios4dolfinx.__version__)" ;;
	*) echo "ADIOS2 (adios4dolfinx) is only available on 64-bit architectures" ;;
    esac
done
