The current testsuite based on HUnit is almost completely bitrotted.
Anyone who wants to take this on has essentially a completely clean slate to work from.
The current system is split into two parts. There are hunit tests in many of the modules guarded by #ifdef DEBUG. Then there are external tests in the tests/ subdirectory. The #ifdef DEBUG style is annoying since it involves using more CPP than seem really necessary.
A couple notes from the old TODO file:
** add a make target or command for tests we know will fail?
** setup test suite to run on --push?
** redirect non-hunit outputs to a file?
One possibility that is available to us now that was not before is using the hackage collection as part of a regression test. For example it should always be possible to parse all the .cabal files in the index.