Any remaining test patches?

Max Bolingbroke batterseapower at
Mon May 23 22:24:44 CEST 2011

On 21 May 2011 15:20, Duncan Coutts <duncan.coutts at> wrote:
> data Test = forall i r t. Testlike i r t => Test TestName t
>          | TestGroup TestName [Test]
>          | PlusTestOptions TestOptions Test

FYI, I recently added another alternative:

 | BuildTest (IO Test)

The main purpose is to support a combinator mutuallyExclusive :: Test
-> Test that only allows one of the child tests in a Test to run at
once (see
This is just a convenience that means that the user doesn't have to
explicitly sequence in this IO action themselves.

> The way it's done in test-framework is to have a pure i :~> r lazy
> list and a separate IO () action that does the real work. The IO
> action performs the test and pokes the results into a Concurrent.Chan.
> The i :~> r lazy list is extracted from the Chan using
> getChanContents.
> Honestly, I don't know why Max did it this way

I would not copy this part of the design -- it is the component I am
least happy with. As you say, it is a rather strange interface, and
your proposal seems much clearer.


More information about the cabal-devel mailing list