home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / TESTS / CHECK.CMD < prev    next >
OS/2 REXX Batch file  |  1996-06-18  |  2KB  |  101 lines

  1. rem !/bin/csh -f  
  2. rem 
  3. rem  Test program for Wild-LIFE
  4. rem 
  5. rem     test *.lf
  6. rem    or
  7. rem     test program
  8. rem 
  9. rem  This program run Wild-LIFE over one or several test programs and records the
  10. rem  differences in the standard and error outputs.
  11. rem 
  12. rem 
  13. rem  Read-only files:
  14. rem     program.lf    Life source code
  15. rem     program.in    Life user input
  16. rem     program.ref    Reference standard output
  17. rem     program.referr    Reference error output
  18. rem 
  19. rem  Output files:
  20. rem     program.out    Most recent standard output
  21. rem     program.err    Most recent error output
  22. rem     program.refdiff Difference between .out and .ref files
  23. rem     program.errdiff Difference between .err and .referr files
  24. rem 
  25.  
  26.  
  27. rem  Make all files rw by everyone
  28. umask 000
  29.  
  30.  
  31. rem  Version of Wild-LIFE to use:
  32. set WLIFE = "../Source/wild_life"
  33.  
  34.  
  35. rem  clear
  36. echo "Testing interpreter: $WLIFE"
  37. echo "Date: `date`"
  38. echo ""
  39. rem  echo ""
  40. rem  echo "                       Wild-LIFE test suite"
  41. rem  echo "                       --------------------"
  42. rem  echo ""
  43. rem  echo "interpreter: $WLIFE"
  44. rem  echo ""
  45. rem  echo ""
  46. rem  echo ""
  47.  
  48.  
  49.  
  50.  
  51. rem  Run the test suite
  52. foreach I ($*)
  53.  
  54.    echo $I
  55.  
  56. if(-e LF/$I:r.lf) then
  57.  
  58. rem  Remove any core dumps
  59.    rm -f core
  60.  
  61. rem  Run Wild-LIFE
  62.    (echo 'load("LF/' $I:r.lf '")?' | tr -d ' ' ;echo "" ; \
  63.     cat IN/$I:r.in  ; echo "halt?") | \
  64.     ($WLIFE |  \
  65. egrep -v '(Loading|already loaded|Version|customizing|Copyright|Garbage|Exiting|X interface)' > OUT/$I:r.out \
  66.         ) |& \
  67.         sed "s/.......s cpu (.*)//" > ERR/$I:r.err
  68.  
  69. rem  Check for core dump
  70.    if(-e core) then
  71.     echo "          ***    C O R E   D U M P  ! !       ***"
  72.    endif
  73.  
  74. rem  Calculate the differences
  75.    (diff OUT/$I:r.out REFOUT/$I:r.refout > REFDIFF/$I:r.refdiff) >& /dev/null
  76.    (diff ERR/$I:r.err REFERR/$I:r.referr > ERRDIFF/$I:r.errdiff) >& /dev/null
  77.  
  78.  
  79. rem  Report them to the developer
  80.    if(`wc -c < REFDIFF/$I:r.refdiff` != 0) then
  81.         echo "          *** output does not match reference ***"
  82.    else
  83.         rm -f REFDIFF/$I:r.refdiff
  84.    endif
  85.  
  86.    if(`wc -c < ERRDIFF/$I:r.errdiff` != 0) then
  87.     echo "          ***  errors do not match reference  ***"
  88.    else
  89.         rm -f ERRDIFF/$I:r.errdiff
  90.    endif
  91.  
  92. else
  93.    echo "          ***  no such test file  ***"
  94. endif
  95.  
  96. end
  97.  
  98. echo ""
  99. echo "Test finished: `date`"
  100. echo ""
  101.