[LL] Update Lincheck to version 2.24

- This new version fixes problems with concurrent hash maps in model
  checking tests and allows us to remove the correctness guarantee for
  them.

^KT-62136
This commit is contained in:
Marco Pennekamp
2024-01-31 14:24:37 +01:00
committed by Space Team
parent 5207940f0b
commit d4b0dfee0a
3 changed files with 10 additions and 17 deletions
@@ -10,7 +10,7 @@ dependencies {
testImplementation(project(":analysis:analysis-api")) testImplementation(project(":analysis:analysis-api"))
testImplementation(project(":analysis:low-level-api-fir")) testImplementation(project(":analysis:low-level-api-fir"))
testImplementation(projectTests(":analysis:analysis-test-framework")) testImplementation(projectTests(":analysis:analysis-test-framework"))
testImplementation("org.jetbrains.kotlinx:lincheck:2.23") testImplementation("org.jetbrains.kotlinx:lincheck:2.24")
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil"))
} }
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.caches
import org.jetbrains.kotlinx.lincheck.annotations.Operation import org.jetbrains.kotlinx.lincheck.annotations.Operation
import org.jetbrains.kotlinx.lincheck.check import org.jetbrains.kotlinx.lincheck.check
import org.jetbrains.kotlinx.lincheck.strategy.managed.forClasses
import org.jetbrains.kotlinx.lincheck.strategy.managed.modelchecking.ModelCheckingOptions import org.jetbrains.kotlinx.lincheck.strategy.managed.modelchecking.ModelCheckingOptions
import org.jetbrains.kotlinx.lincheck.strategy.stress.StressOptions import org.jetbrains.kotlinx.lincheck.strategy.stress.StressOptions
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
@@ -44,14 +43,8 @@ class CleanableSoftValueCacheLincheckTest {
@Operation @Operation
fun remove(key: Int): Int? = cache.remove(key) fun remove(key: Int): Int? = cache.remove(key)
/**
* The guarantee for [ConcurrentHashMap][java.util.concurrent.ConcurrentHashMap] is required for model checking to succeed because
* `ConcurrentHashMap` doesn't pass Lincheck model checking itself.
*/
@Test @Test
fun modelCheckingTest() = ModelCheckingOptions() fun modelCheckingTest() = ModelCheckingOptions().check(this::class)
.addGuarantee(forClasses("java.util.concurrent.ConcurrentHashMap").allMethods().treatAsAtomic())
.check(this::class)
@Test @Test
fun stressTest() = StressOptions().check(this::class) fun stressTest() = StressOptions().check(this::class)
+8 -8
View File
@@ -4356,16 +4356,16 @@
<sha256 value="682cbf020fcd0d3a047d9fe9e21c681f02daf0aa3a587f36ac26d4c435d28bee" origin="Generated by Gradle"/> <sha256 value="682cbf020fcd0d3a047d9fe9e21c681f02daf0aa3a587f36ac26d4c435d28bee" origin="Generated by Gradle"/>
</artifact> </artifact>
</component> </component>
<component group="org.jetbrains.kotlinx" name="lincheck" version="2.23"> <component group="org.jetbrains.kotlinx" name="lincheck" version="2.24">
<artifact name="lincheck-metadata-2.23.jar"> <artifact name="lincheck-metadata-2.24.jar">
<md5 value="912a6b1128e6995b09cb65192ad64dfe" origin="Generated by Gradle"/> <md5 value="9e9a84de6cd9dd5b88a5f27f189691be" origin="Generated by Gradle"/>
<sha256 value="84ac838a5bd04c775c3dfb456c5eb3ccd20f1f358880d79331ab1b7960eceb14" origin="Generated by Gradle"/> <sha256 value="81561d4f66be0593aaf61fd5f9ff951c4b0df9198bfb7cd363bde67950f9999f" origin="Generated by Gradle"/>
</artifact> </artifact>
</component> </component>
<component group="org.jetbrains.kotlinx" name="lincheck-jvm" version="2.23"> <component group="org.jetbrains.kotlinx" name="lincheck-jvm" version="2.24">
<artifact name="lincheck-jvm-2.23.jar"> <artifact name="lincheck-jvm-2.24.jar">
<md5 value="257be6c6ba50480ddf362b5f9b75b781" origin="Generated by Gradle"/> <md5 value="ac832ceed4f9e56ab62cc3cc0e66f7dd" origin="Generated by Gradle"/>
<sha256 value="b828ef373581f811c5093a236c4aac2325a1d45389d27fce19a1da76a4998515" origin="Generated by Gradle"/> <sha256 value="0ea79f9bf09922bf8d540371b9ecb7040950ccd3732941eb7cc0803aaa49abd7" origin="Generated by Gradle"/>
</artifact> </artifact>
</component> </component>
<component group="org.jetbrains.teamcity" name="serviceMessages" version="2019.1.4"> <component group="org.jetbrains.teamcity" name="serviceMessages" version="2019.1.4">