Evgeniy Moiseenko

Results 51 issues of Evgeniy Moiseenko

We want to shorten the internal details of the following standard primitives. Sub-tasks: - [ ] Research and select most commonly used primitives - [ ] Prepare representation tests to...

general-purpose mc
meta

Consider the following example: ```kotlin val executorService = Executors.newFixedThreadPool(2) val future = executorService.submit(task) future.get() ``` Currently, if a lincheck test fails in such a case, it would also output in...

general-purpose mc

Currently, code using lambdas looks like follows in the trace: ``` SpinLockTestKt.withLock(SpinLock#1, LivelockRunConcurrentRepresentationTest$block$t1$1$1) at LivelockRunConcurrentRepresentationTest.block$lambda$0(RunConcurrentRepresentationTests.kt:254) ``` We want to improve the representation of lambdas, making them less verbose and more...

general-purpose mc

Consider the following example: ```kotlin var counter = 0 val map = ConcurrentHashMap() map.computeIfAbsent("abc") { counter++ } ``` Currently, if a lincheck test fails in such a case, it would...

general-purpose mc

Consider the following example: ```kotlin val executorService = Executors.newFixedThreadPool(2) executorService.asCoroutineDispatcher().use { dispatcher -> val job = launch(dispatcher) { counter++ } job.join() ``` Currently, if a lincheck test fails in such...

general-purpose mc

Consider the following code: ```kotlin var counter = 0 val map = ConcurrentHashMap() map.computeIfAbsent("abc") { counter++ } ``` In such examples, when outputting the trace we usually want to hide...

general-purpose mc

One of the features of Lincheck framework is the concurrent code model checker. Currently the model checker functionality in Lincheck is toughly coupled with the Lincheck's data structures testing API....

general-purpose mc
meta

Possible reasons could either be: * The test also requires support of multiple suspension points in the linearizability checker. * There is some data race in the `ParallelThreadsRunner` class in...

When reporting the exceptions detected by the Lincheck to the user, we need to differentiate between the exceptions from the user code and exceptions thrown from the Lincheck itself (internal...

refactoring