Ticket #212 (new task)

Opened 5 years ago

Last modified 17 months ago

Overhaul Cabal's testsuite

Reported by: duncan Owned by:
Priority: normal Milestone: Cabal-1.8
Component: Cabal library Version: 1.2.3.0
Severity: normal Keywords:
Cc: Difficulty: very hard (<1 week)
GHC Version: 6.8.2 Platform:

Description

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.

Change History

Changed 5 years ago by duncan

A couple more item from the old TODO:

** error cases for parsing command-line args
** reading & writing configuration-dropping
** test / port code for Hugs

In theory it works with hugs, in practice it does not get tested much.

** use-cases based on SimonPJ's doc

This probably refers to the original Cabal proposal which presented some use cases. The idea would be to turn these into some test cases and make sure they go smoothly.

Changed 5 years ago by duncan

  • milestone set to Cabal-1.6

Changed 5 years ago by duncan

  • milestone changed from Cabal-1.6 to Cabal-1.8

Changed 2 years ago by tibbe

Perhaps we could use the new test suite functionality for (some of) the tests?

Changed 17 months ago by elga

Note: See TracTickets for help on using tickets.