[racket-dev] check-match?

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Mon Nov 19 20:01:02 EST 2012

Yeah, that is very nice! (It should begin with "check" not "test" tho,
right?)

Robby

On Monday, November 19, 2012, Matthias Felleisen wrote:

>
> That is cute. Why don't you just create a pull request and Ryan can
> integrate it into rackunit? -- Matthias
>
>
>
>
>
> On Nov 19, 2012, at 4:22 PM, Joe Gibbs Politz wrote:
>
> > A small suggestion:
> >
> > I used roughly this macro (credit Jonah Kagan) recently to help me write
> some tests for parsing code that agnostic to which source position is
> generated in the parse:
> >
> > (define-syntax test/match
> >   (syntax-rules ()
> >     [(test/match actual expected pred)
> >      (let ([actual-val actual])
> >        (with-check-info* (list (make-check-actual actual-val)
> >                                (make-check-expected 'expected))
> >                          (thunk (check-true (match actual-val
> >                                                 [expected pred]
> >                                                 [_ false])))))]
> >
> >     [(test/match actual expected)
> >      (test/match actual expected true)]))
> >
> > Shriram remarked that he was surprised some sort of check-match wasn't
> in rackunit already.  Is it worth adding something like this?
> >
> > I'm doing things like:
> >
> > (test/match (parse "5 'foo'") (s-block _ (list (s-num _ 5) (s-str _
> "foo"))))
> >
> > Where the structs s-block, s-num, and s-str all expect a srcloc as their
> first argument, but I don't care about it for these tests.
> >
> > The actual use is at:
> >
> >
> https://github.com/brownplt/pyret-lang/blob/master/src/tests/parse-tests.rkt#L36
> >
> > That file would be much, much uglier without this macro.
> >
> > Cheers,
> > Joe P.
> >
> > _________________________
> >  Racket Developers list:
> >  http://lists.racket-lang.org/dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/dev/archive/attachments/20121119/1bb7e17f/attachment.html>

Posted on the dev mailing list.