Description
LinkChecker.checkImpl
method generates all possible executions and then uses executeActors(linEx)
on each one. It is very slow, because it does TestThreadExecutionGenerator.create
every time, defining new classes for each execution (instead of defining them just once and reusing). Because of this lincheck does not really scale to complex tests. In my case it "hangs" trying to produce executions for this schenario with four threads (4/4/4/2 operations):
Actors per thread:
[removeFirst()[w], removeFirst()[w], addLastIfPrevDiff(2)[w], removeFirstOrPeekIf(1)[w]]
[removeFirst()[w], addFirstIfEmpty(1)[w], addFirstIfEmpty(2)[w], addFirstIfEmpty(3)[w]]
[addLast(1)[w], addLastIfPrevDiff(3)[w], addFirst(2)[w], addLast(1)[w]]
[removeFirstOrPeekIf(2)[w], removeFirst()[w]]