Tests utilizing the parallel STM.ml capability:
-
array/stm_tests.ml contains sequential and parallel tests of the
Arraymodule -
atomic/stm_tests.ml contains sequential and parallel tests of the
Atomicmodule -
bigarray/stm_tests.ml contains sequential and parallel tests of the
Bigarraymodule -
buffer/stm_tests.ml contains sequential and parallel tests of the
Buffermodule -
bytes/stm_tests.ml contains sequential and parallel tests of the
Bytesmodule -
domain/stm_tests_dls.ml contains sequential and parallel tests of the
Domain.DLSmodule -
dynarray/stm_tests.ml contains sequential and parallel tests of the
Dynarraymodule -
ephemeron/stm_tests.ml contains sequential and parallel tests of the
Ephemeronmodule -
floatarray/stm_tests.ml contains sequential and parallel tests of the
Float.Arraymodule -
gc contains sequential and parallel tests of the
Gcmodule- gc/stm_tests_seq.ml,
gc/stm_tests_seq_child.ml, and
gc/stm_tests_par.ml contains a version
with explicit calls to
Gcfunctions, and - gc/stm_tests_impl_seq.ml,
gc/stm_tests_impl_seq_child.ml, and
gc/stm_tests_impl_par.ml contains a version
with implicit calls to the
Gc
- gc/stm_tests_seq.ml,
gc/stm_tests_seq_child.ml, and
gc/stm_tests_par.ml contains a version
with explicit calls to
-
hashtbl/stm_tests.ml contains sequential and parallel tests of the
Hashtblmodule -
lazy/stm_tests.ml contains sequential and parallel tests of the
Lazymodule -
semaphore/stm_tests.ml contains sequential and parallel tests of the
Semaphore.Countingmodule -
sys/stm_tests.ml contains sequential and parallel tests of the
Sysmodule -
weak/stm_tests.ml and weak/stm_tests_hashset.ml contains sequential and parallel tests of the
Weakmodule
Tests utilizing Lin:
-
array/lin_internal_tests.ml and array/lin_tests.ml contain experimental
Lin.InternalandLin-tests ofArray -
atomic/lin_internal_tests.ml and atomic/lin_tests.ml contain experimental
Lin.InternalandLin-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 -
dynarray/lin_tests.ml contains experimental
Lin-tests ofDynarray -
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.InternalandLin-tests ofHashtbl -
io/lin_internal_tests.ml, io/lin_tests_domain.ml, and io/lin_tests_thread.ml contain experimental
Lin.InternalandLin-tests ofIn_channelandOut_channel -
lazy/lin_internal_tests.ml and lazy/lin_tests.ml contain experimental
Lin.InternalandLin-tests ofLazy -
queue/lin_internal_tests.ml and queue/lin_tests.ml contain experimental
Lin.InternalandLin-tests ofQueue -
stack/lin_internal_tests.ml and stack/lin_tests.ml contain experimental
Lin.InternalandLin-tests ofStack -
weak/lin_tests.ml and weak/lin_tests_hashset.ml contains experimental
Lin-stress tests of theWeakmodule
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/joinbased on a random dependency graph -
domain/domain_spawntree.ml is a test of
Domain'sspawn/joinbased on a randomspawntree -
thread/thread_joingraph.ml is a test of
Thread'screate/joinbased on a random dependency graph -
thread/thread_createtree.ml is a test of
Thread'screate/joinbased on a randomcreatetree
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.