#!/bin/csh -f
#
# ULTEST - test ULTRA
#
# Source Version: 2.0
# Software Release #92-0043
#
# include "cpyright.h"
#

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

source ../manager/env-$System

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

set ULTRA = "$FrontEnd $BinDir/ultra"

if (-e ../dev/$System/bin/ultra) then
   setenv SCHEME ../scheme/applications:../sx/applications
   setenv ULTRA applications

   rm -f ultest.ps.diff ultest.err ultest.tmp ultest.pdb ultest.asc curves.a testt.cgm my.cgm

   echo ""
   echo "ULTRA TEST..."

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

   echo ""
   echo -n "                    ULTRA FFT Test ....."
   rm -f ulfft.log ultest.err
   $ULTRA -r -s -l ulfft.scm >& ulfft.log
   grep -i "error" ulfft.log > ultest.err
   set Files = `find . -name "ultest.err" -size 0c -print`
   if ($#Files == 0) then
      echo ""
      echo "                    ULTRA FFT Test ........ FAILED"
      set ERROR = "TRUE"
   else
      echo "... PASSED"
   endif

   echo ""
   echo -n "                    ULTRA Memory Test ....."
   $ULTRA -n -r -s -l ulmmt.scm >& ulmmt.log

   if ($status != 0) then
      echo ""
      echo "                    ULTRA Memory Test ..... FAILED"
      set ERROR = "TRUE"
   else
      echo " PASSED"
   endif

   echo ""
   echo -n "                    ULTRA Master Test ....."
   rm -f ultest.log ultest.pdb ultest.asc ultest.err ultest.tmp
   $ULTRA -r -s -l ./ultest.scm >& ultest.tmp
   if ($status != 0) then
      echo ""
      echo "                         Executable crashed"
      set FAIL = "YES"
   else
      grep -i "error" ultest.tmp > ultest.err
      set Files = `find . -name "ultest.err" -size 0c -print`
      if ($#Files == 0) then
         echo ""
         set FAIL = "YES"
      else
         awk '(($1 != "%%CreationDate:") && !(($4 ~ /..:..:../) && ($5 ~ /199[0-9]/))) {print}' ultest.ps > ultest.ps.tmp
         mv ultest.ps.tmp ultest.ps

         ps-diff ultest.ps ultest.ps.ref > /dev/null
         set DiffStat = $status
   
         if ($DiffStat != 0) then
            echo ""
            echo "                         PS files differ"
            set FAIL = "YES"
         endif
      endif
   endif

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

   echo ""
   if ($ERROR == "TRUE") then
      echo ""
      echo "Debug:"
      cat ultest.debug
      echo ""
      echo "ULTRA TEST...FAILED"
   else
      rm -f ultest.ps ultest.log ultest.pdb.chk ulmmt.log ulfft.log
      echo "ULTRA TEST...PASSED"
   endif

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

   rm -f ultest.ps.diff ultest.err ultest.tmp ultest.pdb ultest.asc curves.a testt.cgm my.cgm

else
   echo ""
   echo "ULTRA Code Not Available."
endif

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

exit($xstatus)
