~/talk

Workshop. Lincheck: Testing concurrency on the JVM (Part 1)

Talkat Hydra 2021 · 2021-06-15..06-18· [testing, java]
links:none on file
slides:none on file

Lincheck is a JVM testing tool (Kotlin examples) that declares operations and a correctness contract (default: linearizability) and runs either stress or bounded model‑checking. A simple volatile counter test reproduces a lost update because add isn’t atomic (counter shows lost update). Stress finds failures but not traces; model checking explores bounded context switches and model checking produces exact interleaving so you get a reproducible trace. Example findings: LongAdder is not linearizable for inc+dec+sum and a GC‑tools nonblocking hashmap put/get bug is exposed. Use IntelliJ; iterations default to thousands.

AI-written summary · about

  1. 0:00Intro
  2. 3:27Workshop overview
  3. 6:06Counter example
  4. 8:28Running the test
  5. 14:29Results
  6. 16:24What is correctness
  7. 18:16Language ability
  8. 21:59Writing the test
  9. 29:29Troubleshooting
  10. 31:47Stress testing
  11. 32:33Stress
  12. 33:17Model checking
  13. 35:34How model checking works
  14. 38:29Where to use stress and model checking
  15. 39:46Scenario configurations
  16. 39:58Scenario actors
  17. 41:35Weak memory test
  18. 44:39Parameter generation annotation
  19. 48:33Shared parameter generation annotation
  20. 49:39Custom parameter generation annotation
  21. 51:56Example
  22. 53:38Questions
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.