#!/bin/sh
#
# Autoconf substitutes @VAR@ definitions to come up with a 
# semi-valid test script
# 
if test "$SHL_EXT" = ""; then
    SHL_EXT=".so"
fi
if test "$OBJ_EXT" = ""; then
    OBJ_EXT=".o"
fi

if test "$EXE_EXT" = ""; then
    EXE_EXT=""
fi

export SHL_EXT
export OBJ_EXT
export EXE_EXT

if test "$ELMER_HOME" = ""; then
    # assume that we are testing local version
    printf "\$ELMER_HOME undefined, setting it to ../src\n"
    export ELMER_HOME="../../src"
    export ELMER_LIB="../../src"
    export ELMER_INCLUDE="../../src"
    # elmergrid must be in path
    export ELMER_GRID="ElmerGrid"
    export ELMER_SOLVER="../../src/ElmerSolver"
    # elmergrid must be in path
    export ELMER_MESH2D="Mesh2D"
    export LD_LIBRARY_PATH=".:$ELMER_HOME:$LD_LIBRARY_PATH"
    # assume that stuff has been installed here
    export PATH=/tmp/jpr/bin:$PATH
else 
    # ELMER_HOME is defined, so we'll just use that
    printf "\$ELMER_HOME=%s\n" $ELMER_HOME
    export ELMER_LIB="$ELMER_HOME/share/elmersolver/lib"
    export ELMER_INCLUDE="$ELMER_HOME/share/elmersolver/include"
    export ELMER_GRID="$ELMER_HOME/bin/ElmerGrid"
    export ELMER_SOLVER="$ELMER_HOME/bin/ElmerSolver"
    export ELMER_MESH2D="$ELMER_HOME/bin/Mesh2D"
    export LD_LIBRARY_PATH=".:$ELMER_HOME/share/elmersolver/lib:$LD_LIBRARY_PATH"
    export PATH=$ELMER_HOME/bin:$PATH
fi

#
# Autoconf substitutes these variables with correct values.
#
export F90="/wrk/jpr/irun/bin/gfortran -g -O3 -ffast-math -funroll-loops -march=pentium4 -ftree-vectorize -ftree-vectorizer-verbose=0 -fPIC -I. -Ibinio -I. -I$ELMER_INCLUDE"
export LD="/wrk/jpr/irun/bin/gfortran -shared  "
export LIBS="-L$ELMER_LIB "

/wrk/jpr/irun/bin/gcc -o findnorm$EXE_EXT findnorm.c
/wrk/jpr/irun/bin/gcc -o compare$EXE_EXT compare.c -lm
chmod 775 findnorm$EXE_EXT compare$EXE_EXT

total=0
passed=0

if test "$1" = ""; then
   dirs=`find . -type d |sed -e 's/\// /g' |awk '{print $2}' |uniq |grep -v CVS`
else
   dirs="$*"
fi

for dir in $dirs; do

      total=`expr $total + 1`
      cwd=`pwd`
      cd $dir
      printf "testing:  %20s " $dir
      make  > test.log 2>&1

      success=`grep "ALL DONE" test.log | wc -l`
      if test $success -ge 1; then
	  correctResult=`cat TEST.RESULT`
	  grep "(NRM,RELC)" test.log > temp.log
	  resultNorm=`../findnorm$EXE_EXT temp.log`
	  success=`../compare$EXE_EXT $resultNorm $correctResult`
      fi

      if test $success -ge 1; then
	  passed=`expr $passed + 1`
          printf "			[PASSED]\n"
	  make -i clean > /dev/null 2>&1
      else
          printf " [FAILED] look at %20s/test.log for details\n" $dir
      fi
      cd $cwd
done

echo "Tests completed, passed: $passed out of total $total tests"
