Copyright | (c) 2015--2019 Michael Walker |
---|---|
License | MIT |
Maintainer | Michael Walker <mike@barrucadu.co.uk> |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Systematic testing for concurrent computations.
Synopsis
- runSCT :: MonadDejaFu n => Way -> MemType -> Program pty n a -> n [(Either Condition a, Trace)]
- runSCT' :: (MonadDejaFu n, NFData a) => Way -> MemType -> Program pty n a -> n [(Either Condition a, Trace)]
- resultsSet :: (MonadDejaFu n, Ord a) => Way -> MemType -> Program pty n a -> n (Set (Either Condition a))
- resultsSet' :: (MonadDejaFu n, Ord a, NFData a) => Way -> MemType -> Program pty n a -> n (Set (Either Condition a))
- runSCTWithSettings :: MonadDejaFu n => Settings n a -> Program pty n a -> n [(Either Condition a, Trace)]
- runSCTWithSettings' :: (MonadDejaFu n, NFData a) => Settings n a -> Program pty n a -> n [(Either Condition a, Trace)]
- resultsSetWithSettings :: (MonadDejaFu n, Ord a) => Settings n a -> Program pty n a -> n (Set (Either Condition a))
- resultsSetWithSettings' :: (MonadDejaFu n, Ord a, NFData a) => Settings n a -> Program pty n a -> n (Set (Either Condition a))
- module Test.DejaFu.Settings
Running Concurrent Programs
:: MonadDejaFu n | |
=> Way | How to run the concurrent program. |
-> MemType | The memory model to use for non-synchronised |
-> Program pty n a | The computation to run many times. |
-> n [(Either Condition a, Trace)] |
Explore possible executions of a concurrent program according to
the given Way
.
The exact executions tried, and the order in which results are found, is unspecified and may change between releases.
Since: 2.1.0.0
:: (MonadDejaFu n, NFData a) | |
=> Way | How to run the concurrent program. |
-> MemType | The memory model to use for non-synchronised |
-> Program pty n a | The computation to run many times. |
-> n [(Either Condition a, Trace)] |
A strict variant of runSCT
.
Demanding the result of this will force it to normal form, which may be more efficient in some situations.
The exact executions tried, and the order in which results are found, is unspecified and may change between releases.
Since: 2.1.0.0
:: (MonadDejaFu n, Ord a) | |
=> Way | How to run the concurrent program. |
-> MemType | The memory model to use for non-synchronised |
-> Program pty n a | The computation to run many times. |
-> n (Set (Either Condition a)) |
Return the set of results of a concurrent program.
Since: 2.1.0.0
:: (MonadDejaFu n, Ord a, NFData a) | |
=> Way | How to run the concurrent program. |
-> MemType | The memory model to use for non-synchronised |
-> Program pty n a | The computation to run many times. |
-> n (Set (Either Condition a)) |
A strict variant of resultsSet
.
Demanding the result of this will force it to normal form, which may be more efficient in some situations.
Since: 2.1.0.0
Configuration
:: (MonadDejaFu n, NFData a) | |
=> Settings n a | The SCT settings. |
-> Program pty n a | The computation to run many times. |
-> n [(Either Condition a, Trace)] |
A strict variant of runSCTWithSettings
.
Demanding the result of this will force it to normal form, which may be more efficient in some situations.
The exact executions tried, and the order in which results are found, is unspecified and may change between releases.
Since: 2.1.0.0
resultsSetWithSettings Source #
:: (MonadDejaFu n, Ord a) | |
=> Settings n a | The SCT settings. |
-> Program pty n a | The computation to run many times. |
-> n (Set (Either Condition a)) |
A variant of resultsSet
which takes a Settings
record.
Since: 2.1.0.0
resultsSetWithSettings' Source #
:: (MonadDejaFu n, Ord a, NFData a) | |
=> Settings n a | The SCT settings. |
-> Program pty n a | The computation to run many times. |
-> n (Set (Either Condition a)) |
A strict variant of resultsSetWithSettings
.
Demanding the result of this will force it to normal form, which may be more efficient in some situations.
Since: 2.1.0.0
module Test.DejaFu.Settings