Combination simulation testing runs concurrent code under software that records each thread’s data accesses, lock operations, and atomic operations. It then repeats the run across combinations permitted by the C++ memory model to detect race conditions and deadlocks. section 11.2.4
The technique can find problems its simulation system is designed to detect, but the number of combinations grows exponentially with thread and operation counts. Reserve it for fine-grained tests, and check that the software supports the operations in the code. section 11.2.4
