[Haskell-cafe] quickcheck for compiler testing

Andrey Chudnov achudnov at gmail.com
Mon Feb 16 17:02:32 UTC 2015


I use QuichCheck for compiler testing where I generate random, but 
well-formed programs and check some high-level syntactic properties on 
results. The QuickCheck instance is open-source (see 
language-ecmascript), but the compiler-test code is closed-source at 
this time. Still, I found that it's not the ultimate answer: many 
properties are hard to formalize, so I have to resort to unit tests. I'm 
not sure what you mean by "how this would play with test size 
reduction". I think it's worth giving a try, but keep in mind that you 
might still need to use unit tests.

Let me know if you have any questions.

/Andrey

On 02/16/2015 11:53 AM, Maurizio Vitale wrote:
> I'm starting to work on my first real haskell program (I've only RWH 
> exercises under my belt) and wondering whether people use quickcheck 
> at all for compiler testing.
>
> I've seen uses of quickcheck for testing parsers, but I'm interested 
> in generating well-formed programs (e.g. random programs with all 
> declarations in reasonable random places). This could be used to test 
> passes other than parsing (or even parsing, for languages that needs 
> to distinguish identifiers, like the 'typedef' problem in C/C++).
>
> The only thing I can think of, is to use quickcheck for randomly 
> generating statements, go over them and figure out free variables 
> (incl. functions) and generate declarations in random places for them. 
> But I'm not sure how this would play with test size reduction and 
> doesn't look like a nice solution anyhow.
>
> Any idea or pointers to examples? or should I give up on quickcheck 
> for this and just do direct testing?
>
> Thanks,
>
>   Maurizio
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150216/3fc35794/attachment.html>


More information about the Haskell-Cafe mailing list