-- File [Ivy]<Nelson>Lupine>LupineTimeTest.mesa.
-- Last edited by BZM on  2-Mar-82 21:01:03.


-- This a simple timing test program for Lupine.
-- It is used by LupineTimeTestImpl and LupineTimeTestDriver.
-- Each procedure implementation should echo its arguments back as results.



LupineTimeTest: DEFINITIONS = BEGIN


  Null: PROC;
  One:  PROC [one: INTEGER] RETURNS [a: INTEGER];
  Two:  PROC [one,two: INTEGER] RETURNS [a,b: INTEGER];
  Four: PROC [one,two,three,four: INTEGER] RETURNS [a,b,c,d: INTEGER];
  Ten:  PROC [one,two,three,four,five,six,seven,eight,nine,ten: INTEGER]
	  RETURNS [a,b,c,d,e,f,g,h,i,j: INTEGER];

  Signal: SIGNAL [in: INTEGER] RETURNS [out: INTEGER];
  SignalAction: TYPE = {signal, error, neither};
  SignalTest: PROC [in: INTEGER, action: SignalAction] RETURNS [out: INTEGER];


  Array1: TYPE = ARRAY [0..1) OF INTEGER;
  Array4: TYPE = ARRAY [0..4) OF INTEGER;
  Array10: TYPE = ARRAY [0..10) OF INTEGER;
  Array40: TYPE = ARRAY [0..40) OF INTEGER;
  Array100: TYPE = ARRAY [0..100) OF INTEGER;

  OneArray: PROC [in: Array1] RETURNS [out: Array1];
  FourArray: PROC [in: Array4] RETURNS [out: Array4];
  TenArray: PROC [in: Array10] RETURNS [out: Array10];
  FortyArray: PROC [in: Array40] RETURNS [out: Array40];
  HundredArray: PROC [in: Array100] RETURNS [out: Array100];


END.  -- LupineTimeTest.