abstract-deque-0.1.5: Abstract, parameterized interface to mutable Deques.

Safe HaskellSafe-Infered

Data.Concurrent.Deque.Tests

Contents

Synopsis

Tests for simple FIFOs.

test_fifo_filldrain :: DequeClass d => d Int -> IO ()

This test serially fills up a queue and then drains it.

test_fifo_HalfToHalf :: DequeClass d => Int -> d Int -> IO ()

This one splits the numCapabilities threads into producers and consumers. Each thread performs its designated operation as fast as possible. The Int argument total designates how many total items should be communicated (irrespective of numCapabilities).

test_fifo :: DequeClass d => (forall elt. IO (d elt)) -> Test

This creates an HUnit test list to perform all the tests above.

Tests for Work-stealing queues.

test_ws_triv1 :: PopL d => d [Char] -> IO ()

Trivial test: push then pop.

test_ws_triv2 :: PopL d => d [Char] -> IO ()

Trivial test: push left, pop left and right.

test_wsqueue :: PopL d => (forall elt. IO (d elt)) -> Test

Aggregate tests for work stealing queues.

All deque tests, aggregated.

test_all :: PopL d => (forall elt. IO (d elt)) -> Test