Safe Haskell | Safe-Infered |
---|
This module contains a battery of simple tests for queues implementing the interface defined in ` Data.Concurrent.Deque.Class`.
- test_fifo_filldrain :: DequeClass d => d Int -> IO ()
- test_fifo_OneBottleneck :: DequeClass d => Bool -> Int -> d Int -> IO ()
- test_fifo :: DequeClass d => (forall elt. IO (d elt)) -> Test
- test_ws_triv1 :: PopL d => d [Char] -> IO ()
- test_ws_triv2 :: PopL d => d [Char] -> IO ()
- test_wsqueue :: PopL d => (forall elt. IO (d elt)) -> Test
- test_all :: PopL d => (forall elt. IO (d elt)) -> Test
Tests for simple FIFOs.
test_fifo_filldrain :: DequeClass d => d Int -> IO ()Source
This test serially fills up a queue and then drains it.
test_fifo_OneBottleneck :: DequeClass d => Bool -> Int -> d Int -> IO ()Source
This test splits the numAgents
threads into producers and
consumers which all communicate through a SINGLE queue. Each
thread performs its designated operation as fast as possible. The
Int
argument total
designates how many total items should be
communicated (irrespective of numAgents
).
test_fifo :: DequeClass d => (forall elt. IO (d elt)) -> TestSource
This test uses a separate queue per consumer thread. The queues are used in a single-writer multiple-reader fashion (mailboxes).
This creates an HUnit test list to perform all the tests above.
Tests for Work-stealing queues.
test_wsqueue :: PopL d => (forall elt. IO (d elt)) -> TestSource
Aggregate tests for work stealing queues.