The interface to be implemented by a test provider.
The type t is the concrete representation of the test which is used by
the provider.
Methods
run :: OptionSet -> t -> (Progress -> IO ()) -> IO ResultRun the test
This method should cleanly catch any exceptions in the code to test, and return them as part of the Result, see FailureReason for an explanation. It is ok for run to raise an exception if there is a problem with the test suite code itself (for example, if a file that should contain example data or expected output is not found).
testOptions :: Tagged t [OptionDescription]The list of options that affect execution of tests of this type