Workshop. Lincheck: Testing concurrency on the JVM (Part 2)
summary
Hands-on use of Lincheck in Kotlin with IntelliJ demonstrates concrete checks: using checkObstructionFreedom in model checking mode finds an infinite read loop in the DataHolder (branch 5.1), the Michael-style queue fails unless a helping step is added (branch 5.2), marking ConcurrentHashMap methods as atomic avoids exploding interleavings and OOM during exhaustive verification (branch 6.1), adding a sequential spec and overriding extractState speeds verification (branch 7.1), rendezvous channels test as suspendable ops (8.1), final task targets a known bug in ConcurrentLinkedDeque (9.1).
AI-written summary · about
chapters (6)
- 0:00Start
- 25:38Modular Testing
- 38:32Label Transition System
- 46:52Setting Sequential Specification of a Data Structure
- 1:07:30What's the Difference of Linceck for Kotlin and for Java
- 1:10:27Closing Ceremony
related talks
39mLincheck: Testing concurrency on the JVM
45mHow we test concurrent algorithms in Kotlin Coroutines
36mTesting Stateful and Concurrent Systems Using test.check
45mThe Hidden Art of Thread-Safe Programming: Exploring java.util.concurrent
38mAsk Me Anything with Doug Lea
43mEffective Unit testing with Kotlin
50mThe Hidden Art of Thread-Safe Programming: Exploring java.util.con...
56mJava 4..21, Kotlin, Code Coverage, bytecode: scandals, intrigues, investigations
