#!/bin/csh -f
#
# SHTEST - test SCHEME
#

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

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

   touch test.error

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

   echo ""
   echo "SCHEME TEST..."

   echo ""
   echo -n "                    SCHEME Memory Test ....."
   $FrontEnd $BinDir/scheme -l mmtst.scm > test.error
   if ($status != 0) then
      echo ""
      cat test.error
      echo "                         Memory Test Error"
      echo "                    SCHEME Memory Test ..... FAILED"
      set ERROR = "TRUE"
   else
      echo " PASSED"
   endif

if (!(-e ../manager/noipc)) then
   echo ""
   echo -n "                    SCHEME Proc Test ....."
   $FrontEnd $BinDir/scheme -l shproc.scm > shproc.res
   diff shproc.res shproc.res.ref > shproc.res.diff
   set Files = `find . -name "shproc.res.diff" -size 4c -print`
   if ($#Files != 0) then
      echo ""
      echo "                    SCHEME Proc Test .....   FAILED"
      set ERROR = "TRUE"
   else
      echo "   PASSED"
   endif
   rm -f shproc.res.diff
endif

   rm test.error

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

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

endif

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

exit($xstatus)

