#!/bin/bash
source activate $CONDA_ENV
set -v -e
if [ "${VANILLA_INSTALL}" == "yes" ]; then
conda remove --force -y setuptools
fi
if [ "$BUILD_DOC" == "yes" ]; then rstcheck README.rst; fi
pushd docs
if [ "$BUILD_DOC" == "yes" ]; then make SPHINXOPTS=-W clean html; fi
popd
if [ "${VANILLA_INSTALL}" == "yes" ]; then
python -m numba -s
python -m numba -g
else
pushd bin
numba -s
numba -g
popd
fi
export NUMBA_DISABLE_ERROR_MESSAGE_HIGHLIGHTING=1
export NUMBA_DEVELOPER_MODE=1
export PYTHONFAULTHANDLER=1
export NUMBA_CAPTURED_ERRORS="new_style"
_NPY_CMD='from numba.misc import numba_sysinfo;\
sysinfo=numba_sysinfo.get_sysinfo();\
print(sysinfo["NumPy AVX512_SKX detected"] and
sysinfo["NumPy Version"]>="1.22")'
NUMPY_DETECTS_AVX512_SKX_NP_GT_122=$(python -c "$_NPY_CMD")
echo "NumPy >= 1.22 with AVX512_SKX detected: $NUMPY_DETECTS_AVX512_SKX_NP_GT_122"
if [[ "$NUMPY_DETECTS_AVX512_SKX_NP_GT_122" == "True" ]]; then
export NPY_DISABLE_CPU_FEATURES="AVX512_SKX"
fi
if [ -z ${TEST_THREADING+x} ]; then
echo "INFO: Threading layer not explicitly set."
else
case "${TEST_THREADING}" in "workqueue"|"omp"|"tbb")
export NUMBA_THREADING_LAYER="$TEST_THREADING"
echo "INFO: Threading layer set as: $TEST_THREADING"
;;
*)
echo "INFO: Threading layer explicitly set to bad value: $TEST_THREADING."
exit 1
;;
esac
fi
function check_sysinfo() {
cmd="import os;\
from numba.misc.numba_sysinfo import get_sysinfo;\
assert get_sysinfo()['$1 Threading'] is True, 'Threading layer $1 '\
'is not supported';\
print('Threading layer $1 is supported')"
python -c "$cmd"
}
if [[ "$TEST_THREADING" ]]; then
if [[ "$TEST_THREADING" == "tbb" ]]; then
check_sysinfo "TBB"
elif [[ "$TEST_THREADING" == "omp" ]]; then
check_sysinfo "OpenMP"
elif [[ "$TEST_THREADING" == "workqueue" ]]; then
check_sysinfo "Workqueue"
else
echo "Unknown threading layer requested: $TEST_THREADING"
exit 1
fi
fi
unamestr=`uname`
if [[ "$unamestr" == 'Linux' ]]; then
SEGVCATCH=catchsegv
elif [[ "$unamestr" == 'Darwin' ]]; then
SEGVCATCH=""
else
echo Error
fi
archstr=`uname -m`
if [[ "$archstr" == 'ppc64le' ]]; then
TEST_NPROCS=16
fi
if [[ $(uname) == "Darwin" ]]; then
export SDKROOT=`pwd`/MacOSX10.10.sdk
fi
python -m numba.misc.POST
NUMBA_ENABLE_CUDASIM=1 $SEGVCATCH python -m numba.runtests -b -v -g -m $TEST_NPROCS -- numba.tests
echo "INFO: All discovered tests:"
python -m numba.runtests -l
echo "INFO: Running shard of discovered tests: ($TEST_START_INDEX:$TEST_COUNT)"
if [ "$RUN_COVERAGE" == "yes" ]; then
export PYTHONPATH=.
coverage erase
$SEGVCATCH coverage run runtests.py -b -j "$TEST_START_INDEX:$TEST_COUNT" --exclude-tags='long_running' -m $TEST_NPROCS -- numba.tests
elif [ "$RUN_TYPEGUARD" == "yes" ]; then
echo "INFO: Running with typeguard"
NUMBA_USE_TYPEGUARD=1 NUMBA_ENABLE_CUDASIM=1 PYTHONWARNINGS="ignore:::typeguard" $SEGVCATCH python runtests.py -b -j "$TEST_START_INDEX:$TEST_COUNT" --exclude-tags='long_running' -m $TEST_NPROCS -- numba.tests
else
NUMBA_ENABLE_CUDASIM=1 $SEGVCATCH python -m numba.runtests -b -j "$TEST_START_INDEX:$TEST_COUNT" --exclude-tags='long_running' -m $TEST_NPROCS -- numba.tests
fi
if [[ "$TEST_RVSDG" == "yes" ]]; then
echo "Running RVSDG tests..."
NUMBA_USE_RVSDG_FRONTEND=1 NUMBA_CAPTURED_ERRORS=new_style NUMBA_ENABLE_CUDASIM=1 $SEGVCATCH python -m numba.runtests -b -v -m $TEST_NPROCS -- numba.tests.test_usecases
fi