Project:Haskell/Test plans

Overview
This is a list of test cases for packages maintained by the Gentoo Haskell project. When an arch team is stabilizing Haskell software, they often won't know much about the package involved. To make their job easier, we provide example GHCi sessions or small programs which exercise each Haskell package. Then the arch teams can simply follow the instructions, and verify that nothing unusual happens.

If you are familiar with a package and can provide a better test case, please contact us!

Packages with Test Suites
If a package has a passing test suite, we usually consider that sufficient to mark it stable. You can watch the output to ensure that the suite was run and that it passed:

GHCi
GHCi stand for something like, GHC, interactively. It's a REPL environment for the GHC Haskell compiler. Most of the test scenarios will be given as a series of GHCi commands, which either do nothing or produce some output to be checked visually. For example,

The  prefix will always be used to indicate the GHCi prompt, even though it will change throughout your session.

During your session, GHCi will usually attempt to load libraries on demand, and output lines like. These will be omitted from the session transcripts.

Sometimes we will pass flags to  like,

These flags enable GHC extensions which probably make the test case a whole lot more enjoyable.

Packages without Test Suites
Please keep these in alphabetical order so that the arch teams can find them!

Save the following as :

Now run HsColour on it; you should see a syntax-highlighted version of echoed to your terminal:

Any XML file should do here; you could also grab a from your.

We have to hide mtl and explicitly load monads-tf since they provide the same modules.

The integer on the last line (the hash) may be variable.

The  module is also exported by, so we have to hide it from ghci.

See. The test cases are the same, except you'll want to hide instead. For example,

The output in the last line will vary, since it should be the current unix timestamp.

The output at the end should be whatever is contained in your.