File openblas_tests.sh.in of Package openblas

#! /bin/bash

FLAVOR=@FLAVOR@
COMPILER=@COMPILER@
dir=@DIR@


testfailed=0
declare -a failed_test

failed() {
  echo "$1 failed"
  testfailed=1
  failed_test+=("$1")
}

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

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

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



case $FLAVOR in
    serial) export THREADS=false; export OMP=false ;;
    pthreads) export THREADS=true; export OMP=false ;;
    openmp) export THREADS=false; export OMP=true ;;
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

if [ ${#failed_test[@]} -ne 0 ]; then
  echo
  echo "The following tests failed:"
  for test in "${failed_test[@]}"; do
    echo "  - $test"
  done
fi

exit $testfailed
openSUSE Build Service is sponsored by