--- gforth/test/tester.fs 1997/05/21 20:40:20 1.1 +++ gforth/test/tester.fs 2007/08/12 12:10:35 1.2 @@ -1,6 +1,7 @@ \ From: John Hayes S1I \ Subject: tester.fr \ Date: Mon, 27 Nov 95 13:10:09 PST +\ revised by Anton Ertl 2007-08-12 \ (C) 1995 JOHNS HOPKINS UNIVERSITY / APPLIED PHYSICS LABORATORY \ MAY BE DISTRIBUTED FREELY AS LONG AS THIS COPYRIGHT NOTICE REMAINS. @@ -23,21 +24,22 @@ VARIABLE VERBOSE VARIABLE ACTUAL-DEPTH \ STACK RECORD CREATE ACTUAL-RESULTS 20 CELLS ALLOT +VARIABLE START-DEPTH : { \ ( -- ) SYNTACTIC SUGAR. - ; + DEPTH START-DEPTH ! ; : -> \ ( ... -- ) RECORD DEPTH AND CONTENT OF STACK. DEPTH DUP ACTUAL-DEPTH ! \ RECORD DEPTH - ?DUP IF \ IF THERE IS SOMETHING ON STACK - 0 DO ACTUAL-RESULTS I CELLS + ! LOOP \ SAVE THEM + START-DEPTH @ > IF \ IF THERE IS SOMETHING ON STACK + DEPTH START-DEPTH @ DO ACTUAL-RESULTS I CELLS + ! LOOP \ SAVE THEM THEN ; : } \ ( ... -- ) COMPARE STACK (EXPECTED) CONTENTS WITH SAVED \ (ACTUAL) CONTENTS. DEPTH ACTUAL-DEPTH @ = IF \ IF DEPTHS MATCH - DEPTH ?DUP IF \ IF THERE IS SOMETHING ON THE STACK - 0 DO \ FOR EACH STACK ITEM + DEPTH START-DEPTH @ > IF \ IF THERE IS SOMETHING ON THE STACK + DEPTH START-DEPTH @ DO \ FOR EACH STACK ITEM ACTUAL-RESULTS I CELLS + @ \ COMPARE ACTUAL WITH EXPECTED <> IF S" INCORRECT RESULT: " ERROR LEAVE THEN LOOP