<> <> <> <> DIRECTORY LupineMarshalTestRpcControl USING [InterfaceRecord], Rope USING [ROPE]; LupineExerciser: DEFINITIONS = BEGIN TestInterface: LupineMarshalTestRpcControl.InterfaceRecord; Counter: TYPE = INTEGER; String: TYPE = Rope.ROPE _ NIL; StandardPasses: Counter = 1; StandardTrialsPerPass: Counter = 1; StandardTestsPerTrial: Counter = 2000; Exercise: TYPE = RECORD [ name, description: String _ NIL, routine: ExerciseProc ]; ExerciseIndex: TYPE = INTEGER[0..LAST[INTEGER]]; ExerciseList: TYPE = LONG DESCRIPTOR FOR READONLY ARRAY ExerciseIndex OF Exercise _ NIL; ExerciseProc: TYPE = PROCEDURE [ exerciser: Handle, name: String, trials: Counter _ StandardTrialsPerPass, testsPerTrial: Counter _ StandardTestsPerTrial, checkResults: BOOLEAN _ TRUE ]; Handle: TYPE [1]; PerformExercises: PROCEDURE [ nameOfExercisedInterface: String, exercises: ExerciseList ]; BadExercise: SIGNAL; Start: PROCEDURE [self: Handle, name: String]; Stamp: PROCEDURE [self: Handle]; Delay: PROCEDURE [self: Handle]; Stop: PROCEDURE [self: Handle]; StartPrecisionTiming: PROCEDURE [self: Handle]; StopPrecisionTiming: PROCEDURE [self: Handle]; END. -- LupineExerciser.