kotlinx-lincheck
kotlinx-lincheck copied to clipboard
Framework for testing concurrent data structures
* When calling a `suspend` function, optionally indicate that this is a `suspend` function and hide the `Continuation` parameter. * When a coroutine (`Continuation`) is resumed, hide the machinery to...
As the Lincheck codebase grows in size and complexity, debugging becomes more and more challenging process. To improve the development process and speed-up debugging process, we need to add a...
Currently, there are several places in the `ManagedStrategy` class, where there is special handling of `TestThread` objects created by Lincheck, comparing with custom user created threads: https://github.com/JetBrains/lincheck/blob/f2011d4d0c6915cfe6a3a5baf9455e4469e1c012/src/jvm/main/org/jetbrains/kotlinx/lincheck/strategy/managed/ManagedStrategy.kt#L495 Let's unify the...
Hide from the trace (by default) implementation details of various synchronization primitives from Java stdlib: - `ReentrantLock` - `ReadWriteLock` - `Future` - `CountDownLatch` - `CyclicBarrier` - `Phaser` To support that,...
This PR attempts to refactor the interaction of the `Strategy` class and the `Runner` class to make the `Strategy` runner-agnostic. The goal is to encapsulate the execution scenario specific logic...
```Kotlin val t = thread(start = false) { ... } t.start() ``` Does not show the thread creation site
**Description**: When the user finds a bug using the Plugin and hasn't modified the code, it's better to skip successfully passed scenarios and interleavings to display the debugger interface faster....
Currently the Lincheck strategies classes use the following `ThreadState` state machine to manage the threads: https://github.com/JetBrains/lincheck/blob/a758c54e13058899488cb369207d6d24237cb19c/src/jvm/main/org/jetbrains/kotlinx/lincheck/strategy/ThreadScheduler.kt#L35 However, currently there are several technical problems in the code base: - [ ]...
See `// TODO investigate (Evgeniy Moiseenko)` in code