pqc-0.4.1: Parallel batch driver for QuickCheck

Portabilitynon-portable (uses Control.Concurrent, GHC.Conc )
Stabilityexperimental
Maintainershelarcy <shelarcy@gmail.com>

Test.QuickCheck.Parallel

Description

A parallel batch driver for running QuickCheck on threaded or SMP systems. See the Example.hs file for a complete overview.

Synopsis

Documentation

pRun :: Int -> Int -> [Test] -> IO ()Source

Deprecated: Backwards-compatible API

pRun' :: Int -> [Test] -> IO ()Source

Variant of pRunWithNum. Run a list of QuickCheck properties in parallel chunks, using number of Haskell threads that can run truly simultaneously (on separate physical processors) at any given time. For example,

 import Test.QuickCheck.Parallel

 pRun' 1000
    [ ("sort1", pDet prop_sort1)
    , ("sort2", pDet prop_sort2) ]

with SMP runtime's '-N[n]' flag will run n threads over the property list, to depth 1000. (see getNumCapabilities for more details.)

pRunAllProcessors :: Int -> [Test] -> IO ()Source

Variant of pRunWithNum. Run a list of QuickCheck properties in parallel chunks, using all Processors.

pRunWithNum :: Int -> Int -> [Test] -> IO ()Source

Run a list of QuickCheck properties in parallel chunks, using n Haskell threads (first argument), and test to a depth of d (second argument). Compile your application with '-threaded' and run with the SMP runtime's '-N4' (or however many OS threads you want to donate), for best results.

 import Test.QuickCheck.Parallel

 do n <- getArgs >>= readIO . head
    pRunWithNum n 1000 [ ("sort1", pDet prop_sort1) ]

Will run n threads over the property list, to depth 1000.

If you want to specify n by using '-N[n]', use pRun' instead of this function.

pDet :: Testable a => a -> Int -> IO ResultSource

Wrap a property, and run it on a deterministic set of data

pNon :: Testable a => a -> Int -> IO ResultSource

Wrap a property, and run it on a non-deterministic set of data