#!/bin/csh -f
#
# PDTEST - test PDB
#

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

source ../manager/env-$System

set FrontEnd = ""
set DPE = `which pact-dpe`
if ("$DPE" != "") then
   if (-e "$DPE[1]") then
      source $DPE
   else
      set DPE = ""
   endif
endif

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

   touch test.error

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

   echo ""
   echo "PDB TEST..."

   echo -n "                    Compiling PDB tests ....."
   pact Cstd >& test.error

   if ($status != 0) then
      echo ""
      cat test.error
      echo "                         Can't build PDB Test Programs"
      set ERROR = "TRUE"

   else

      rm test.error
      echo " DONE"
      echo ""
      echo -n "                    PDB Master Test ....."
      $BinDir/pdbtst
      if ($status != 0) then
         echo "                    PDB Master Test ................ FAILED "
         set ERROR = "TRUE"
      else
         echo "                    PDB Master Test ................ PASSED "
      endif

      echo ""
      echo -n "                    PDB Net Test ........"
      $BinDir/pdntst
      if ($status != 0) then
         echo "                    PDB Net Test ................... FAILED "
         set ERROR = "TRUE"
      else
         echo "                    PDB Net Test ................... PASSED "
      endif

      echo ""
      echo -n "                    PDB Attribute Test ....."

      $BinDir/pdatst
      if ($status != 0) then
         echo ""
         echo "                    PDB Attribute Test ............. FAILED"
         set ERROR = "TRUE"
      else
         echo "........ PASSED"
      endif

      rm *.db? *.rs?

      ../manager/pwhich f77 >& /dev/null 

      if (($status == 0) && ("$DPE" == "")) then
         echo ""
         echo -n "                    PDB FORTRAN Interface Test ....."

         set FAIL = "NO"

         pact Fstd >& test.error
         if ($status != 0) then
#            most likely cause is the gcc and f77 dispute over builtin_saveregs
            echo ""
            cat test.error
            echo "                         Cannot build PDB FORTRAN Test Program"
            rm -f $BinDir/pdftst
         else
            $BinDir/pdftst >& test.error
            if ($status != 0) then
               echo ""
               cat test.error
               echo "                          Fortran Test Error"
               set FAIL = "YES"
            endif
         endif

         if ($FAIL == "YES") then
            echo "                    PDB FORTRAN Interface Test ..... FAILED"
            set ERROR = "TRUE"
         else
            echo " PASSED"
         endif
         rm test.error
      endif
   endif

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

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

endif

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

exit($xstatus)

