Portability | non-portable (uses Control.Exception, Control.Concurrent) |
---|---|
Stability | experimental |
Maintainer | libraries@haskell.org |
A batch driver for running QuickCheck.
Note: in GHC only, it is possible to place a time limit on each test, to ensure that testing terminates.
- run :: Testable a => a -> TestOptions -> IO TestResult
- runTests :: String -> TestOptions -> [TestOptions -> IO TestResult] -> IO ()
- defOpt :: TestOptions
- data TestOptions = TestOptions {
- no_of_tests :: Int
- length_of_tests :: Int
- debug_tests :: Bool
- data TestResult
- = TestOk String Int [[String]]
- | TestExausted String Int [[String]]
- | TestFailed [String] Int
- | TestAborted Exception
- isBottom :: a -> Bool
- bottom :: a
Documentation
run :: Testable a => a -> TestOptions -> IO TestResultSource
Run the test. Here we use the same random number each time, so we get reproducable results!
runTests :: String -> TestOptions -> [TestOptions -> IO TestResult] -> IO ()Source
Prints a one line summary of various tests with common theme
data TestOptions Source
TestOptions | |
|
data TestResult Source
TestOk String Int [[String]] | |
TestExausted String Int [[String]] | |
TestFailed [String] Int | |
TestAborted Exception |
Look out behind you! These can be misused badly. However, in the context of a batch tester, can also be very useful.
Examples of use of bottom and isBottom:
{- test for abort -} prop_head2 = isBottom (head []) {- test for strictness -} prop_head3 = isBottom (head bottom)