QuickCheck-2.6: Automatic testing of Haskell programs

Safe Haskell | Safe-Inferred
Language | Haskell98

Test.QuickCheck.Test

Contents

- Running tests

Synopsis

- data Args = Args {
  - replay :: Maybe (StdGen, Int)
  - maxSuccess :: Int
  - maxDiscardRatio :: 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
    - interrupted :: Bool
    - 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

maxDiscardRatio :: Int

  maximum number of discarded tests per successful test 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

interrupted :: Bool

  did the user press ctrl-C?

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 ()