id,summary,reporter,owner,description,type,status,priority,milestone,component,resolution,keywords,cc,planetversion,pltversion
156,test-suite semantics change makes my code infinite loop,pnkfelix@…,schematics,"I was driving myself crazy trying to figure out why my Intel laptop was running my tests while my old Power Mac was taking forever to run them.

Eventually I realized it was because my Power Mac had downloaded a more recent version of Scheme Unit.

Consider the following:

{{{
#lang scheme

#;
(require (planet schematics/schemeunit:3) 
         (planet schematics/schemeunit:3/text-ui))
(require (planet ""main.ss"" (""schematics"" ""schemeunit.plt"" 3 (= 3)))
         (planet ""text-ui.ss"" (""schematics"" ""schemeunit.plt"" 3 (= 3))))

(define felixs-suite (test-suite """"))

(set! felixs-suite 
      (test-suite ""snoc"" 
                  felixs-suite
                  (test-case ""test"" (check-equal? 1 1))))

(run-tests felixs-suite)
}}}

I use the pattern above (in a more complicated manner but abstracted under a macro) to incrementally construct a set of test cases whose evaluation will be delayed until I invoke {{{run-tests}}}.

I can see in the Release Notes for version 3.4 that you say that you have changed things to allow ""arbitrary expressions"" in test suites.  But I would claim that you have merely changed the set of allowable expressions, since my example worked better under the old semantics.  The documentation should be improved to make this clearer.

----

In the meantime, can you tell me how you would achieve the effect I desire?  (One way to think of the desired effect is like the Student Language's {{{check-expect}}} form, which delays invocation of the tests until the entire module body has been evaluated.)


",task,accepted,major,,schematics/schemeunit.plt,,,,(3 4),4.1.4
