#!/bin/csh -f
#
# MLTEST - test PML
#

set System = `../manager/system-id`
set BinDir = ../dev/$System/bin
set ERROR  = "FALSE"
set FAIL   = "NO"
set status = 0

source ../manager/env-$System

if (-e ../dev/$System/include/pml.h) then

   touch test.error

   rm -f mltest.debug
   echo `../manager/pwhich pact` >& mltest.debug
   echo `../manager/pwhich cc` >>& mltest.debug
   echo "BinDir = $BinDir" >>& mltest.debug

   echo ""
   echo "PML TEST..."

   echo ""
   echo  -n "                    PML Matrix Test ....."

   pact matrix >& test.error
   if ($status != 0) then
      echo ""
      cat test.error
      echo "                         Can't build PML Matrix Test Program"
      set FAIL = "YES"
   else
      $BinDir/mlmtrt >& mlmtrt.res
      if ($status != 0) then
        echo ""
        echo "                         Error in Matrix Test program"
        set FAIL = "YES"
      endif
      rm mlmtrt.res
   endif

   if ($FAIL == "YES") then
      echo "                    PML Matrix Test ..... FAILED"
      set ERROR = "TRUE"
   else
      echo " PASSED"
   endif

   echo ""
   echo -n "                    PML Solver Test ....."

   set FAIL = "NO"
   pact icsolv >& test.error
   if ($status != 0) then
      echo ""
      cat test.error
      echo "                         Can't build PML Solver Test Program"
      set FAIL = "YES"
   else
      $BinDir/mlicts >& mlicts.res
      if ($status != 0) then
         echo ""
         echo "                         Error in Solver Test Program"
         set FAIL = "YES"
      endif
      rm mlicts.res
   endif

   if ($FAIL == "YES") then
      echo "                    PML Solver Test ..... FAILED"
      set ERROR = "TRUE"
   else
      echo " PASSED"
   endif

   rm test.error

   echo ""
   if ($ERROR == "TRUE") then
      echo ""
      echo "Debug:"
      cat mltest.debug
      echo ""
      echo "PML TEST...FAILED"
   else
      echo "PML TEST...PASSED"
   endif

   echo ""
   echo " --------------------------------------------------------"

endif

set xstatus = 0
if ($ERROR == "TRUE") then
   set xstatus = 1
endif

exit($xstatus)

