Tests utilizing the parallel STM.ml capability:
-
array/stm_tests.ml contains sequential and parallel tests of the
Array
module -
atomic/stm_tests.ml contains sequential and parallel tests of the
Atomic
module -
bigarray/stm_tests.ml contains sequential and parallel tests of the
Bigarray
module -
buffer/stm_tests.ml contains sequential and parallel tests of the
Buffer
module -
bytes/stm_tests.ml contains sequential and parallel tests of the
Bytes
module -
domain/stm_tests_dls.ml contains sequential and parallel tests of the
Domain.DLS
module -
ephemeron/stm_tests.ml contains sequential and parallel tests of the
Ephemeron
module -
floatarray/stm_tests.ml contains sequential and parallel tests of the
Float.Array
module -
hashtbl/stm_tests.ml contains sequential and parallel tests of the
Hashtbl
module -
lazy/stm_tests.ml contains sequential and parallel tests of the
Lazy
module -
semaphore/stm_tests.ml contains sequential and parallel tests of the
Semaphore.Counting
module -
sys/stm_tests.ml contains sequential and parallel tests of the
Sys
module -
weak/stm_tests.ml and weak/stm_tests_hashset.ml contains sequential and parallel tests of the
Weak
module
Tests utilizing Lin
:
-
array/lin_internal_tests.ml and array/lin_tests.ml contain experimental
Lin.Internal
andLin
-tests ofArray
-
atomic/lin_internal_tests.ml and atomic/lin_tests.ml contain experimental
Lin.Internal
andLin
-tests ofAtomic
-
bigarray/lin_tests.ml contains experimental
Lin
-tests ofBigarray
-
bytes/lin_tests.ml contains experimental
Lin
-tests ofBytes
-
domain/lin_tests_dls.ml contains experimental
Lin
-tests ofDomain.DLS
-
dynlink/lin_tests.ml contains experimental
Lin
-tests ofDynlink
-
ephemeron/lin_tests.ml contains experimental
Lin
-stress tests ofEphemeron
-
floatarray/lin_tests.ml contains experimental
Lin
-tests ofFloat.Array
-
hashtbl/lin_internal_tests.ml and hashtbl/lin_tests.ml contain experimental
Lin.Internal
andLin
-tests ofHashtbl
-
io/lin_internal_tests.ml, io/lin_tests_domain.ml, and io/lin_tests_thread.ml contain experimental
Lin.Internal
andLin
-tests ofIn_channel
andOut_channel
-
lazy/lin_internal_tests.ml and lazy/lin_tests.ml contain experimental
Lin.Internal
andLin
-tests ofLazy
-
queue/lin_internal_tests.ml and queue/lin_tests.ml contain experimental
Lin.Internal
andLin
-tests ofQueue
-
stack/lin_internal_tests.ml and stack/lin_tests.ml contain experimental
Lin.Internal
andLin
-tests ofStack
-
weak/lin_tests.ml and weak/lin_tests_hashset.ml contains experimental
Lin
-stress tests of theWeak
module
Tests of the underlying spawn/async functionality of Domain
and
Thread
(not using STM.ml
or Lin.ml
which rely on them):
-
domain/domain_joingraph.ml is a test of
Domain
'sspawn
/join
based on a random dependency graph -
domain/domain_spawntree.ml is a test of
Domain
'sspawn
/join
based on a randomspawn
tree -
thread/thread_joingraph.ml is a test of
Thread
'screate
/join
based on a random dependency graph -
thread/thread_createtree.ml is a test of
Thread
'screate
/join
based on a randomcreate
tree
During development we use examples with known problems to help ensure that concurrency issues are indeed found as expected (aka. sanity check).
For Lin.Internal
and Lin
contain "sanity check tests" for an unprotected global ref
and a
buggy concurrent list over unboxed int
and boxed int64
types.
For STM
contain similar tests.