File openblas_tests.sh.in of Package openblas

#! /bin/bash

FLAVOR=@FLAVOR@
COMPILER=@COMPILER@
# Series 'test'
series_test() {
    ${dir}/sblat1 || echo "sblat1 failed"
    ${dir}/dblat1 || echo "dblat1 failed"
    ${dir}/cblat1 || echo "cblat1 failed"
    ${dir}/zblat1 || echo "zblat1 failed"
    ${dir}/sblat2 < ${dir}/sblat2.dat || echo " failed"
    grep -q FATAL SBLAT2.SUMM && cat SBLAT2.SUMM || true
    ${dir}/dblat2 < ${dir}/dblat2.dat || echo " failed"
    grep -q FATAL DBLAT2.SUMM && cat DBLAT2.SUMM || true
    ${dir}/cblat2 < ${dir}/cblat2.dat || echo " failed"
    grep -q FATAL CBLAT2.SUMM && cat CBLAT2.SUMM || true
    ${dir}/zblat2 < ${dir}/zblat2.dat || echo " failed"
    grep -q FATAL ZBLAT2.SUMM && cat ZBLAT2.SUMM || true
    ${dir}/test_sbgemm > SBBLAT3.SUMM || echo "test_sbgemm failed"
    grep -q FATAL SBBLAT3.SUMM && cat SBBLAT3.SUMM || true
    ${dir}/dblat3 < ${dir}/dblat3.dat || echo "dblat3 failed"
    grep -q FATAL DBLAT3.SUMM && cat DBLAT3.SUMM || true
    ${dir}/cblat3 < ${dir}/cblat3.dat || echo "cblat3 failed"
    grep -q FATAL CBLAT3.SUMM && cat CBLAT3.SUMM || true
    [ -x ${dir}/cblat3_3m ] && \
	{  ${dir}/cblat3_3m < ${dir}/cblat3_3m.dat;
	   grep -q FATAL CBLAT3_3M.SUMM && cat CBLAT3_3M.SUMM || true; }
    ${dir}/zblat3 < ${dir}/zblat3.dat || echo "zblat3 failed";
    grep -q FATAL ZBLAT3.SUMM && cat ZBLAT3.SUMM || true
    [ -x ${dir}/zblat3_3m ] && \
	{ ${dir}/zblat3_3m < ${dir}/zblat3_3m.dat || echo "zblat3 failed";
	  grep -q FATAL ZBLAT3_3M.SUMM && cat ZBLAT3_3M.SUMM || true; }
}

# Series 'ctest'
series_ctest() {
    ${dir}/xscblat1 || echo "xscblat1 failed"
    ${dir}/xdcblat1 || echo "sdcblat1 failed"
    ${dir}/xccblat1 || echo "xccblat1 failed"
    ${dir}/xzcblat1 || echo "xzcblat1 failed"
    ${dir}/xscblat2 < ${dir}/sin2 || echo "xscblat2 failed"
    ${dir}/xdcblat2 < ${dir}/din2 || echo "xdcblat2 failed"
    ${dir}/xccblat2 < ${dir}/cin2 || echo "xccblat2 failed"
    ${dir}/xzcblat2 < ${dir}/zin2 || echo "xzcblat2 failed"
    ${dir}/xscblat3 < ${dir}/sin3 || echo "xscblat3 failed"
    ${dir}/xdcblat3 < ${dir}/din3 || echo "xdcblat3 failed"
    ${dir}/xccblat3 < ${dir}/cin3 || echo "xccblat3 failed"
    ${dir}/xzcblat3 < ${dir}/zin3 || echo "xzcblat3 failed"
    [ -x ${dir}/xccblat3_3m ] && { ${dir}/xccblat3_3m < ${dir}/cin3_3m || echo "cin3_3m failed"; };
    [ -x ${dir}/xzcblat3_3m ] && { ${dir}/xzcblat3_3m < ${dir}/zin3_3m || echo "zin3_3m failed"; };
}

# Series 'utest'
series_utest() {
    ${dir}/openblas_utest || echo "openblas_utest failed"
    ${dir}/openblas_utest_ext || echo "openblas_utest_ext failed"
}


dir=/usr/lib/openblas-${FLAVOR}/tests

case $FLAVOR in
    serial) export THREADS=false; export OMP=false ;;
    pthreads) export THREADS=true; export OMP=false ;;
    openmp) export THREADS=false; export OMP=true ;;
    gnu-hpc) module pure;
	     module load gnu/$COMPILER openblas;
	     dir=$OPENBLAS_DIR/bin
	     export THREADS=false; export OMP=true
	     ;;
    gnu-hpc-ptreads) module pure;
	     module load gnu/$COMPILER_VERSION openblas;
	     export THREADS=true; export OMP=false ;;
esac

OPENBLAS_NUM_THREADS=1 OMP_NUM_THREADS=1 series_test
if  $OMP || $TREADS; then
    rm -f ?BLAT2.SUMM ?BLAT3.SUMM ?BLAT3_3M.SUMM
    if $OMP; then
	OMP_NUM_THREADS=2 series_test
    else
	OPENBLAS_NUM_THREADS=2 series_test
    fi
fi

if  $OMP; then
    OMP_NUM_THREADS=2 series_ctest
else
    OPENBLAS_NUM_THREADS=2 series_ctest
fi

series_utest
openSUSE Build Service is sponsored by