<div dir="ltr">I have the following macro:<div><br></div><div><div>(define-syntax (define/test stx)</div><div>  (syntax-parse stx</div><div><span class="" style="white-space:pre">     </span>[(_ (id arg ...) body ... #:test test-body ...)</div>
<div><span class="" style="white-space:pre">    </span> (with-syntax ([id-str (symbol->string (syntax->datum #'id))])</div><div><span class="" style="white-space:pre">   </span>   #'(begin</div><div><span class="" style="white-space:pre">            </span>   (define (id arg ...) body ...)</div>
<div><span class="" style="white-space:pre">            </span>   (print id-str)</div><div><span class="" style="white-space:pre">          </span>   (module+ test</div><div><span class="" style="white-space:pre">                   </span> (require rackunit)</div>
<div><span class="" style="white-space:pre">                    </span> (test-case id-str</div><div><span class="" style="white-space:pre">                 </span>   test-body ...))))]))</div><div><br></div><div>Which handles some testing boilerplate and allows me to use it like so:</div>
<div><br></div><div><div>(define/test (my-fn a b c)</div><div>  (print a)</div><div>  (print b)</div><div>  (print c)</div><div>  #:test</div><div>  (check-true #t)</div><div>  (check-false #t))</div></div><div><br></div>
<div>The problem is that the (require rackunit) expression inside of (module+ test) is not being picked up after macro expansion.  Running either the code or the tests (via raco test) results in: unbound identifier check-true.</div>
<div><br></div><div>Adding (module+ (require rackunit)) to the top of the file solves the problem and both the file and tests run as expected.</div><div><br></div><div>What am I missing?</div><div><br></div><div>Thanks.</div>
-- <br>Talk to you soon,<br><br>Scott Klarenbach<br><br>PointyHat Software Corp.<br><a href="http://www.pointyhat.ca" target="_blank">www.pointyhat.ca</a><br>p 604-568-4280<br>e <a href="mailto:scott@pointyhat.ca" target="_blank">scott@pointyhat.ca</a><br>
<span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">200-1575 W. Georgia</span><br>Vancouver, BC <span style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">V6G2V3</span><br>
<br>_______________________________________<br>To iterate is human; to recur, divine
</div></div>