Test.QuickCheck.Test

QuickCheck-2.4.1.1: Automatic testing of Haskell programs

Test.QuickCheck.Test

Contents

- Running tests

Synopsis

- data Args = Args {
  - replay :: Maybe (StdGen, Int)
  - maxSuccess :: Int
  - maxDiscard :: Int
  - maxSize :: Int
  - chatty :: Bool
  }
- data Result
  - = Success {
    - numTests :: Int
    - labels :: [(String, Int)]
    - output :: String
    }
  - | GaveUp {
    - numTests :: Int
    - labels :: [(String, Int)]
    - output :: String
    }
  - | Failure {
    - numTests :: Int
    - numShrinks :: Int
    - usedSeed :: StdGen
    - usedSize :: Int
    - reason :: String
    - labels :: [(String, Int)]
    - output :: String
    }
  - | NoExpectedFailure {
    - numTests :: Int
    - labels :: [(String, Int)]
    - output :: String
    }
- isSuccess :: Result -> Bool
- stdArgs :: Args
- quickCheck :: Testable prop => prop -> IO ()
- quickCheckWith :: Testable prop => Args -> prop -> IO ()
- quickCheckResult :: Testable prop => prop -> IO Result
- quickCheckWithResult :: Testable prop => Args -> prop -> IO Result
- verboseCheck :: Testable prop => prop -> IO ()
- verboseCheckWith :: Testable prop => Args -> prop -> IO ()
- verboseCheckResult :: Testable prop => prop -> IO Result
- verboseCheckWithResult :: Testable prop => Args -> prop -> IO Result
- test :: State -> (StdGen -> Int -> Prop) -> IO Result
- doneTesting :: State -> (StdGen -> Int -> Prop) -> IO Result
- giveUp :: State -> (StdGen -> Int -> Prop) -> IO Result
- runATest :: State -> (StdGen -> Int -> Prop) -> IO Result
- summary :: State -> [(String, Int)]
- success :: State -> IO ()
- foundFailure :: State -> Result -> [Rose Result] -> IO Int
- localMin :: State -> Result -> [Rose Result] -> IO Int
- localMin' :: State -> Result -> [Rose Result] -> IO Int
- localMinFound :: State -> Result -> IO Int
- callbackPostTest :: State -> Result -> IO ()
- callbackPostFinalFailure :: State -> Result -> IO ()
- safely :: State -> IO () -> IO ()

# Running tests

data Args

Args specifies arguments to the QuickCheck driver

Constructors

Args |
Fields replay :: Maybe (StdGen, Int) should we replay a previous test? maxSuccess :: Int maximum number of successful tests before succeeding maxDiscard :: Int maximum number of discarded tests before giving up maxSize :: Int size to use for the biggest test cases chatty :: Bool whether to print anything

Instances

Read Args |
Show Args |

data Result

Result represents the test result

Constructors

Success |
Fields numTests :: Int number of successful tests performed labels :: [(String, Int)] labels and frequencies found during all tests output :: String printed output
GaveUp |
Fields numTests :: Int number of successful tests performed labels :: [(String, Int)] labels and frequencies found during all tests output :: String printed output
Failure |
Fields numTests :: Int number of successful tests performed numShrinks :: Int number of successful shrinking steps performed usedSeed :: StdGen what seed was used usedSize :: Int what was the test size reason :: String what was the reason labels :: [(String, Int)] labels and frequencies found during all tests output :: String printed output
NoExpectedFailure |
Fields numTests :: Int number of successful tests performed labels :: [(String, Int)] labels and frequencies found during all tests output :: String printed output

Instances

Read Result |
Show Result |

isSuccess :: Result -> Bool

isSuccess checks if the test run result was a success

stdArgs :: Args

stdArgs are the default test arguments used

quickCheck :: Testable prop => prop -> IO ()

Tests a property and prints the results to `stdout`.

quickCheckWith :: Testable prop => Args -> prop -> IO ()

Tests a property, using test arguments, and prints the results to `stdout`.

quickCheckResult :: Testable prop => prop -> IO Result

Tests a property, produces a test result, and prints the results to `stdout`.

quickCheckWithResult :: Testable prop => Args -> prop -> IO Result

Tests a property, using test arguments, produces a test result, and prints the results to `stdout`.

verboseCheck :: Testable prop => prop -> IO ()

Tests a property and prints the results and all test cases generated to `stdout`. This is just a convenience function that means the same as `quickCheck` `.` `verbose`.

verboseCheckWith :: Testable prop => Args -> prop -> IO ()

Tests a property, using test arguments, and prints the results and all test cases generated to `stdout`. This is just a convenience function that combines `quickCheckWith` and `verbose`.

verboseCheckResult :: Testable prop => prop -> IO Result

Tests a property, produces a test result, and prints the results and all test cases generated to `stdout`. This is just a convenience function that combines `quickCheckResult` and `verbose`.

verboseCheckWithResult :: Testable prop => Args -> prop -> IO Result

Tests a property, using test arguments, produces a test result, and prints the results and all test cases generated to `stdout`. This is just a convenience function that combines `quickCheckWithResult` and `verbose`.

test :: State -> (StdGen -> Int -> Prop) -> IO Result

doneTesting :: State -> (StdGen -> Int -> Prop) -> IO Result

giveUp :: State -> (StdGen -> Int -> Prop) -> IO Result

runATest :: State -> (StdGen -> Int -> Prop) -> IO Result

summary :: State -> [(String, Int)]

success :: State -> IO ()

foundFailure :: State -> Result -> [Rose Result] -> IO Int

localMin :: State -> Result -> [Rose Result] -> IO Int

localMin' :: State -> Result -> [Rose Result] -> IO Int

localMinFound :: State -> Result -> IO Int

callbackPostTest :: State -> Result -> IO ()

callbackPostFinalFailure :: State -> Result -> IO ()

safely :: State -> IO () -> IO ()