(FILECREATED "11-Jul-85 11:39:07" {DSK}<LISPFILES>TESTER>TEST-REMOTE-EVAL.;4 13178  

      changes to:  (VARS TEST-REMOTE-EVALCOMS)

      previous date: "11-Jul-85 10:20:19" {DSK}<LISPFILES>TESTER>TEST-REMOTE-EVAL.;1)


(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)

(PRETTYCOMPRINT TEST-REMOTE-EVALCOMS)

(RPAQQ TEST-REMOTE-EVALCOMS ((FNS TEST.CALL-SOMEONE-FOR-HELP TEST.ESTIMATE-FILE-PRINTING-TIME 
				  TEST.ESTIMATE-FILE-READING-TIME TEST.EVAL-FORM-AT-HOST 
				  TEST.FLAG-CONTROLED-REMOTE-EVAL TEST.LOAD-FORM-AND-EVAL 
				  TEST.NONE-BREAK-REMOTEVAL TEST.OPEN-INPUT-FILE-OR-WAIT 
				  TEST.PRINT-RESULT-ON-FILE TEST.READ-FORM-FILE TEST.REMOTE-EVAL-FORM 
				  TEST.REMOTE-EVAL-USING-FILE TEST.WAIT-ON-FLAG)
	(VARS TEST.COMMUNICATION-FLAG TEST.GLOBAL-FORM-IN-HOST-MACHINE 
	      TEST.GLOBAL-RESULT-IN-HOST-MACHINE)
	(GLOBALVARS (TEST.EVAL-SERVER-HOST (QUOTE 222#24#))
		    (TEST.FORM-FILE-NAME (QUOTE {ERIS}<MARKOVITCH>TESTER>TESTFILES2>FORM-FILE))
		    (TEST.MASTER-MACHINE (QUOTE 222#6#))
		    (TEST.RESULT-FILE-NAME (QUOTE {ERIS}<MARKOVITCH>TESTER>TESTFILES2>RESULT-FILE)))
	(CONSTANTS (GARY (QUOTE 222#24#))
		   (TERRY (QUOTE 222#53#))
		   (TEST.CHAR-PER-SECOND-PRINTING-SPEED 400)
		   (TEST.CHAR-PER-SECOND-READING-SPEED 1000)
		   (TEST.CHECK-FOR-RESPONSE-PERIOD.ms 100)
		   (TEST.DEFAULT-MAX-WAITING-TIME-ON-FILE.ms 20000)
		   (TEST.DEFAULT-MAX-WAITING-TIME-ON-FLAG.ms 30000)
		   (TEST.GENERAL-DEFAULT-WAITING-TIME.ms 60000)
		   (TEST.MAX-DATA-TRANSFER-TIME.ms 1000)
		   (TEST.OPEN-AND-CLOSE-FILE-TIME.ms 20000)
		   (TEST.PERIOD-BETWEEN-FILE-OPEN-TRIALS.ms 5000)
		   (TEST.PERIOD-BETWEEN-FLAG-CHECK-TRIALS.ms 100)
		   (TEST.WAIT-FOR-SERVICE-TIME.ms 30000))))
(DEFINEQ

(TEST.CALL-SOMEONE-FOR-HELP
  [LAMBDA (MESS T-ITEM)                                      (* sm "27-Jun-85 11:38")
    (RINGBELLS)
    (PROMPTPRINT MESS)
    (LAFITE.SENDMESSAGE (CONCAT "Subject: Tester program needs help
To: Markovitch.pa

Help  -- " MESS))
    (MENU (create MENU
		  ITEMS _(LIST (LIST T-ITEM T)
			       (QUOTE ("Skip test" NIL)))
		  MENUFONT _ BIGFONT])

(TEST.ESTIMATE-FILE-PRINTING-TIME
  [LAMBDA (NUMBER-OF-CHARACTERS)                             (* sm "27-Jun-85 12:14")
    (IPLUS TEST.OPEN-AND-CLOSE-FILE-TIME.ms (ITIMES 1000 (FIX (FQUOTIENT NUMBER-OF-CHARACTERS 
							      TEST.CHAR-PER-SECOND-PRINTING-SPEED])

(TEST.ESTIMATE-FILE-READING-TIME
  [LAMBDA (FORM)                                             (* sm "27-Jun-85 11:48")
    (IPLUS TEST.OPEN-AND-CLOSE-FILE-TIME.ms (ITIMES 1000 (FIX (FQUOTIENT (NCHARS FORM T)
									 
							       TEST.CHAR-PER-SECOND-READING-SPEED])

(TEST.EVAL-FORM-AT-HOST
  [LAMBDA NIL                                                (* sm "27-Jun-85 14:53")
    (PROG (RESULT NUM-OF-CHARS-IN-RESULT FORM)
          (SETQ FORM TEST.GLOBAL-FORM-IN-HOST-MACHINE)
          (SETQ RESULT (TEST.LOCAL-EVAL-FORM FORM))
          (SETQ NUM-OF-CHARS-IN-RESULT (NCHARS RESULT T))
          (SETQ TEST.GLOBAL-RESULT-IN-HOST-MACHINE RESULT)
          (REMOTEVAL (LIST (QUOTE SETQ)
			   (QUOTE TEST.COMMUNICATION-FLAG)
			   NUM-OF-CHARS-IN-RESULT)
		     TEST.MASTER-MACHINE 0 TEST.WAIT-FOR-SERVICE-TIME.ms])

(TEST.FLAG-CONTROLED-REMOTE-EVAL
  [LAMBDA (FORM HOST MAX-WAITING-TIME.ms)                    (* sm "27-Jun-85 16:50")
    (PROG (TRANSACTION-ID ABORT-TRIAL)
          (if (NULL MAX-WAITING-TIME.ms)
	      then (SETQ MAX-WAITING-TIME.ms TEST.GENERAL-DEFAULT-WAITING-TIME.ms))
          (SETQ TEST.COMMUNICATION-FLAG NIL)
      START-AGAIN
          (SETQ TRANSACTION-ID (TEST.NONE-BREAK-REMOTEVAL FORM HOST 0 TEST.WAIT-FOR-SERVICE-TIME.ms))
          (if (EQ TRANSACTION-ID (QUOTE TIME-EXPIRED))
	      then [if (TEST.CALL-SOMEONE-FOR-HELP "Can't eastablish communication with eval host. " 
						   "Retry communicating")
		       then (GO START-AGAIN)
		     else (RETURN (QUOTE (ERROR! "REMOTE SERVICE DOES NOT RESPONSE"]
	    else (TEST.WAIT-ON-FLAG (QUOTE TEST.COMMUNICATION-FLAG)
				    (IPLUS MAX-WAITING-TIME.ms TEST.MAX-DATA-TRANSFER-TIME.ms))
		 (if (NOT TEST.COMMUNICATION-FLAG)
		     then (SETQ ABORT-TRIAL (TEST.NONE-BREAK-REMOTEVAL (LIST (QUOTE EVALSERVER.ABORT)
									     TRANSACTION-ID)
								       TEST.EVAL-SERVER-HOST 1 
								    TEST.WAIT-FOR-SERVICE-TIME.ms))
			  [if (EQ ABORT-TRIAL (QUOTE TIME-EXPIRED))
			      then [if (TEST.CALL-SOMEONE-FOR-HELP 
"Eval server host did not complete his computation in the designated time, and does not response to interrupt trials."
								   "Retry test")
				       then (RETURN (QUOTE (ERROR! RETRY)))
				     else (RETURN (QUOTE (ERROR! "TIME EXPIRED, ABORT FAILED. "]
			    else (RETURN (QUOTE (ERROR! "TIME EXPIRED, REMOTE ABORTED."]
		   else (RETURN TEST.COMMUNICATION-FLAG])

(TEST.LOAD-FORM-AND-EVAL
  [LAMBDA NIL                                                (* sm "27-Jun-85 13:21")
    (PROG (FORM-FILE RESULT-FILE RESULT FORM NUM-OF-CHARS-IN-RESULT)
          (SETQ FORM-FILE (TEST.OPEN-INPUT-FILE-OR-WAIT TEST.FORM-FILE-NAME))
          (IF (TEST.ERRORP FORM-FILE)
	      THEN (SETQ RESULT RESULT-FILE)
	    ELSE (SETQ FORM (READ FORM-FILE))
		 (CLOSEF FORM-FILE)
		 (SETQ RESULT (TEST.LOCAL-EVAL-FORM FORM)))
          (SETQ NUM-OF-CHARS-IN-RESULT (NCHARS RESULT T))
          (SETQ TEST.GLOBAL-RESULT-IN-HOST-MACHINE RESULT)
          (REMOTEVAL (LIST (QUOTE SETQ)
			   (QUOTE TEST.COMMUNICATION-FLAG)
			   NUM-OF-CHARS-IN-RESULT)
		     TEST.MASTER-MACHINE 0 TEST.WAIT-FOR-SERVICE-TIME.ms])

(TEST.NONE-BREAK-REMOTEVAL
  [LAMBDA (FORM HOST MULT TIMEOUT)                           (* sm "26-Jun-85 11:18")
    (PROG (RESULT OLD-HELPFLAG)
          (SETQ OLD-HELPFLAG (GETTOPVAL (QUOTE HELPFLAG)))
          (SETTOPVAL (QUOTE HELPFLAG)
		     NIL)
          (SETQ RESULT (ERRORSET (QUOTE (REMOTEVAL FORM HOST MULT TIMEOUT))
				 (QUOTE NOBREAK)))
          [if (NULL RESULT)
	      then (SETQ RESULT (LIST (ERRORN)))
		   (if (EQP (CAAR RESULT)
			    17)
		       then (SETQ RESULT (QUOTE (TIME-EXPIRED]
          (SETTOPVAL (QUOTE HELPFLAG)
		     OLD-HELPFLAG)
          (RETURN (CAR RESULT])

(TEST.OPEN-INPUT-FILE-OR-WAIT
  [LAMBDA (FILE-NAME MAX-WAITING-TIME.ms)                    (* sm "27-Jun-85 14:12")
    (PROG (F)
          (if (NULL MAX-WAITING-TIME.ms)
	      then (SETQ MAX-WAITING-TIME.ms TEST.DEFAULT-MAX-WAITING-TIME-ON-FILE.ms))
          (for II from 0 to MAX-WAITING-TIME.ms by TEST.PERIOD-BETWEEN-FILE-OPEN-TRIALS.ms
	     while [TEST.ERRORP (SETQ F (TEST.LOCAL-EVAL-FORM (LIST (QUOTE OPENFILE)
								    (KWOTE FILE-NAME)
								    (QUOTE (QUOTE INPUT))
								    (QUOTE (QUOTE OLD]
	     do (DISMISS TEST.PERIOD-BETWEEN-FILE-OPEN-TRIALS.ms))
          (RETURN F])

(TEST.PRINT-RESULT-ON-FILE
  [LAMBDA NIL                                                (* sm "27-Jun-85 12:47")
    (PROG (RESULT-FILE)
          (SETQ RESULT-FILE (OPENFILE TEST.RESULT-FILE-NAME (QUOTE OUTPUT)
				      (QUOTE NEW)))
          (PRIN4 TEST.GLOBAL-RESULT-IN-HOST-MACHINE RESULT-FILE)
          (CLOSEF RESULT-FILE)
          (REMOTEVAL (QUOTE (SETQ TEST.COMMUNICATION-FLAG T))
		     TEST.MASTER-MACHINE 0 TEST.WAIT-FOR-SERVICE-TIME.ms])

(TEST.READ-FORM-FILE
  [LAMBDA NIL                                                (* sm "27-Jun-85 16:39")
    (PROG (FORM-FILE RESULT)
          (SETQ FORM-FILE (TEST.OPEN-INPUT-FILE-OR-WAIT TEST.FORM-FILE-NAME))
          (IF (NOT (TEST.ERRORP FORM-FILE))
	      THEN (SETQ TEST.GLOBAL-FORM-IN-HOST-MACHINE (READ FORM-FILE))
		   (CLOSEF FORM-FILE))
          (REMOTEVAL (LIST (QUOTE SETQ)
			   (QUOTE TEST.COMMUNICATION-FLAG)
			   (KWOTE FORM-FILE))
		     TEST.MASTER-MACHINE 0 TEST.WAIT-FOR-SERVICE-TIME.ms])

(TEST.REMOTE-EVAL-FORM
  [LAMBDA (FORM TIMEOUT.ms)                                  (* sm " 9-Jul-85 17:23")
    (TEST.REMOTE-EVAL-USING-FILE FORM TIMEOUT.ms])

(TEST.REMOTE-EVAL-USING-FILE
  [LAMBDA (FORM TIMEOUT.ms)                                  (* sm "27-Jun-85 16:26")
    (PROG (FORM-FILE RESULT-FILE NUMBER-OF-CHARACTERS-IN-RESULT RESULT READ-REPORT)
      START-AGAIN
          (SETQ FORM-FILE (OPENFILE TEST.FORM-FILE-NAME (QUOTE OUTPUT)
				    (QUOTE NEW)))
          (PRIN4 FORM FORM-FILE)
          (CLOSEF FORM-FILE)
          (SETQ READ-REPORT (TEST.FLAG-CONTROLED-REMOTE-EVAL (QUOTE (TEST.READ-FORM-FILE))
							     TEST.EVAL-SERVER-HOST
							     (TEST.ESTIMATE-FILE-READING-TIME FORM)))
          (if (TEST.ERRORP READ-REPORT)
	      then (if (EQ (CADR READ-REPORT)
			   (QUOTE RETRY))
		       then (GO START-AGAIN)
		     else (RETURN READ-REPORT))
	    else (SETQ NUMBER-OF-CHARACTERS-IN-RESULT (TEST.FLAG-CONTROLED-REMOTE-EVAL
		     (QUOTE (TEST.EVAL-FORM-AT-HOST))
		     TEST.EVAL-SERVER-HOST TIMEOUT.ms))

          (* If Computation Completed Succesfully Then The Communication Flag Was Set To The Number Of Characters In The Prin4
	  Form Of The Result So That We Will Be Able To Estimate How Long Should We Wait For Printing The Result File.
	  Otherwise, We Had Some Error, And <Number-of-characters-in-result> Will Be Of The Form (Error! ...))


		 (if (TEST.ERRORP NUMBER-OF-CHARACTERS-IN-RESULT)
		     then (if (EQ (CADR NUMBER-OF-CHARACTERS-IN-RESULT)
				  (QUOTE RETRY))
			      then (GO START-AGAIN)
			    else (RETURN NUMBER-OF-CHARACTERS-IN-RESULT))
		   else (SETQ RESULT (TEST.FLAG-CONTROLED-REMOTE-EVAL (QUOTE (
TEST.PRINT-RESULT-ON-FILE))
								      TEST.EVAL-SERVER-HOST
								      (
TEST.ESTIMATE-FILE-PRINTING-TIME NUMBER-OF-CHARACTERS-IN-RESULT)))
			(if (TEST.ERRORP RESULT)
			    then (if (EQ (CADR RESULT)
					 (QUOTE RETRY))
				     then (GO START-AGAIN)
				   else (RETURN RESULT))
			  else (SETQ RESULT-FILE (TEST.OPEN-INPUT-FILE-OR-WAIT TEST.RESULT-FILE-NAME))
			       (if (TEST.ERRORP RESULT-FILE)
				   then (RETURN RESULT-FILE)
				 else (SETQ RESULT (READ RESULT-FILE))
				      (CLOSEF RESULT-FILE)
				      (RETURN RESULT])

(TEST.WAIT-ON-FLAG
  [LAMBDA (FLAG-NAME MAX-WAITING-TIME.ms)                    (* sm "27-Jun-85 13:23")
    (if (NULL MAX-WAITING-TIME.ms)
	then (SETQ MAX-WAITING-TIME.ms TEST.DEFAULT-MAX-WAITING-TIME-ON-FLAG.ms))
    (for I from 0 to MAX-WAITING-TIME.ms by TEST.PERIOD-BETWEEN-FLAG-CHECK-TRIALS.ms
       while (NOT (EVAL FLAG-NAME)) do (DISMISS TEST.PERIOD-BETWEEN-FLAG-CHECK-TRIALS.ms])
)

(RPAQQ TEST.COMMUNICATION-FLAG 3)

(RPAQQ TEST.GLOBAL-FORM-IN-HOST-MACHINE NIL)

(RPAQQ TEST.GLOBAL-RESULT-IN-HOST-MACHINE NIL)
(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS (TEST.EVAL-SERVER-HOST (QUOTE 222#24#))
	    (TEST.FORM-FILE-NAME (QUOTE {ERIS}<MARKOVITCH>TESTER>TESTFILES2>FORM-FILE))
	    (TEST.MASTER-MACHINE (QUOTE 222#6#))
	    (TEST.RESULT-FILE-NAME (QUOTE {ERIS}<MARKOVITCH>TESTER>TESTFILES2>RESULT-FILE)))
)
(DECLARE: EVAL@COMPILE 

(RPAQQ GARY 222#24#)

(RPAQQ TERRY 222#53#)

(RPAQQ TEST.CHAR-PER-SECOND-PRINTING-SPEED 400)

(RPAQQ TEST.CHAR-PER-SECOND-READING-SPEED 1000)

(RPAQQ TEST.CHECK-FOR-RESPONSE-PERIOD.ms 100)

(RPAQQ TEST.DEFAULT-MAX-WAITING-TIME-ON-FILE.ms 20000)

(RPAQQ TEST.DEFAULT-MAX-WAITING-TIME-ON-FLAG.ms 30000)

(RPAQQ TEST.GENERAL-DEFAULT-WAITING-TIME.ms 60000)

(RPAQQ TEST.MAX-DATA-TRANSFER-TIME.ms 1000)

(RPAQQ TEST.OPEN-AND-CLOSE-FILE-TIME.ms 20000)

(RPAQQ TEST.PERIOD-BETWEEN-FILE-OPEN-TRIALS.ms 5000)

(RPAQQ TEST.PERIOD-BETWEEN-FLAG-CHECK-TRIALS.ms 100)

(RPAQQ TEST.WAIT-FOR-SERVICE-TIME.ms 30000)

(CONSTANTS (GARY (QUOTE 222#24#))
	   (TERRY (QUOTE 222#53#))
	   (TEST.CHAR-PER-SECOND-PRINTING-SPEED 400)
	   (TEST.CHAR-PER-SECOND-READING-SPEED 1000)
	   (TEST.CHECK-FOR-RESPONSE-PERIOD.ms 100)
	   (TEST.DEFAULT-MAX-WAITING-TIME-ON-FILE.ms 20000)
	   (TEST.DEFAULT-MAX-WAITING-TIME-ON-FLAG.ms 30000)
	   (TEST.GENERAL-DEFAULT-WAITING-TIME.ms 60000)
	   (TEST.MAX-DATA-TRANSFER-TIME.ms 1000)
	   (TEST.OPEN-AND-CLOSE-FILE-TIME.ms 20000)
	   (TEST.PERIOD-BETWEEN-FILE-OPEN-TRIALS.ms 5000)
	   (TEST.PERIOD-BETWEEN-FLAG-CHECK-TRIALS.ms 100)
	   (TEST.WAIT-FOR-SERVICE-TIME.ms 30000))
)
(PUTPROPS TEST-REMOTE-EVAL COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (1721 11388 (TEST.CALL-SOMEONE-FOR-HELP 1731 . 2150) (TEST.ESTIMATE-FILE-PRINTING-TIME 
2152 . 2441) (TEST.ESTIMATE-FILE-READING-TIME 2443 . 2740) (TEST.EVAL-FORM-AT-HOST 2742 . 3339) (
TEST.FLAG-CONTROLED-REMOTE-EVAL 3341 . 5112) (TEST.LOAD-FORM-AND-EVAL 5114 . 5924) (
TEST.NONE-BREAK-REMOTEVAL 5926 . 6639) (TEST.OPEN-INPUT-FILE-OR-WAIT 6641 . 7338) (
TEST.PRINT-RESULT-ON-FILE 7340 . 7838) (TEST.READ-FORM-FILE 7840 . 8419) (TEST.REMOTE-EVAL-FORM 8421
 . 8592) (TEST.REMOTE-EVAL-USING-FILE 8594 . 10934) (TEST.WAIT-ON-FLAG 10936 . 11386)))))
STOP
