[LL] Add LL API module for JDK 11 tests to support Lincheck tests
- Lincheck is compiled with JDK 11 and the `low-level-api-fir` module is based on the JDK 8 toolchain, so we need to add a new module with a JDK 11 toolchain to support Lincheck tests. We cannot bump `low-level-api-fir` to JDK 11 because `low-level-api-fir-for-ide` requires it to be based on a JDK 8 toolchain. - Using a Gradle test suite is unfortunately not an option, because `low-level-api-fir-for-ide` will think that the whole `low-level-api-fir` module is compiled with JDK 11 if just a single test suite has this toolchain. ^KT-62136
This commit is contained in:
committed by
Space Team
parent
c0c6667876
commit
ee7c67ba11
@@ -13,6 +13,7 @@ tasks.register("analysisAllTests") {
|
|||||||
":analysis:analysis-api-fe10:test",
|
":analysis:analysis-api-fe10:test",
|
||||||
":analysis:analysis-api-standalone:test",
|
":analysis:analysis-api-standalone:test",
|
||||||
":analysis:low-level-api-fir:test",
|
":analysis:low-level-api-fir:test",
|
||||||
|
":analysis:low-level-api-fir:tests-jdk11:test",
|
||||||
":analysis:symbol-light-classes:test"
|
":analysis:symbol-light-classes:test"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
plugins {
|
||||||
|
kotlin("jvm")
|
||||||
|
id("jps-compatible")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testImplementation(libs.junit.jupiter.api)
|
||||||
|
testRuntimeOnly(libs.junit.jupiter.engine)
|
||||||
|
|
||||||
|
testImplementation(project(":analysis:analysis-api"))
|
||||||
|
testImplementation(project(":analysis:low-level-api-fir"))
|
||||||
|
testImplementation("org.jetbrains.kotlinx:lincheck:2.23")
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
"test" { projectDefault() }
|
||||||
|
}
|
||||||
|
|
||||||
|
configureJvmToolchain(JdkMajorVersion.JDK_11_0)
|
||||||
|
|
||||||
|
projectTest(jUnitMode = JUnitMode.JUnit5) {
|
||||||
|
dependsOn(":dist")
|
||||||
|
workingDir = rootDir
|
||||||
|
useJUnitPlatform()
|
||||||
|
|
||||||
|
// This is required by lincheck model checking to be able to use `jdk.internal.misc.Unsafe` and similar classes under the hood.
|
||||||
|
jvmArgs(
|
||||||
|
"--add-opens",
|
||||||
|
"java.base/jdk.internal.misc=ALL-UNNAMED",
|
||||||
|
"--add-exports",
|
||||||
|
"java.base/jdk.internal.util=ALL-UNNAMED",
|
||||||
|
"--add-exports",
|
||||||
|
"java.base/sun.security.action=ALL-UNNAMED"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
testsJar()
|
||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.analysis.low.level.api.fir.caches
|
||||||
|
|
||||||
|
import org.jetbrains.kotlinx.lincheck.annotations.Operation
|
||||||
|
import org.jetbrains.kotlinx.lincheck.check
|
||||||
|
import org.jetbrains.kotlinx.lincheck.strategy.managed.modelchecking.ModelCheckingOptions
|
||||||
|
import org.jetbrains.kotlinx.lincheck.strategy.stress.StressOptions
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
|
|
||||||
|
// This is an example Lincheck test to ensure that the test infrastructure is working. It will be replaced with proper "cleanable soft value
|
||||||
|
// cache" tests in the scope of KT-62136.
|
||||||
|
|
||||||
|
class ExampleLincheckTest {
|
||||||
|
private val c = AtomicInteger(0)
|
||||||
|
|
||||||
|
@Operation
|
||||||
|
fun inc(): Int = c.incrementAndGet()
|
||||||
|
|
||||||
|
@Operation
|
||||||
|
fun get(): Int = c.get()
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun stressTest() = StressOptions().check(this::class)
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun modelCheckingTest() = ModelCheckingOptions().check(this::class)
|
||||||
|
}
|
||||||
@@ -3488,6 +3488,12 @@
|
|||||||
<sha256 value="711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c" origin="Generated by Gradle"/>
|
<sha256 value="711d64522f9ec410983bd310934296da134be4254a125080a0416ec178dfad1c" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.javassist" name="javassist" version="3.26.0-GA">
|
||||||
|
<artifact name="javassist-3.26.0-GA.jar">
|
||||||
|
<md5 value="547690071a74a2aafb01896c9f42b37d" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="ca5625874ff0a34f2422173a511b33c225218c146a3c961b18940efff430462d" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.javassist" name="javassist" version="3.28.0-GA">
|
<component group="org.javassist" name="javassist" version="3.28.0-GA">
|
||||||
<artifact name="javassist-3.28.0-GA.jar">
|
<artifact name="javassist-3.28.0-GA.jar">
|
||||||
<md5 value="1a2dd8c76321cef26cc2669fe70a2557" origin="Generated by Gradle"/>
|
<md5 value="1a2dd8c76321cef26cc2669fe70a2557" origin="Generated by Gradle"/>
|
||||||
@@ -3714,6 +3720,12 @@
|
|||||||
<sha256 value="3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203" origin="Generated by Gradle"/>
|
<sha256 value="3277ac102ae17aad10a55abec75ff5696c8d109790396434b496e75087854203" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.6.21">
|
||||||
|
<artifact name="kotlin-reflect-1.6.21.jar">
|
||||||
|
<md5 value="3db09afc9595efdfa2eccba08665501b" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="1e1f57209f7238c3fd1735a1b9339a56565507dca249f8371bf59d91f601aeaa" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.7.10">
|
<component group="org.jetbrains.kotlin" name="kotlin-reflect" version="1.7.10">
|
||||||
<artifact name="kotlin-reflect-1.7.10.jar">
|
<artifact name="kotlin-reflect-1.7.10.jar">
|
||||||
<md5 value="22aaff1245b21364e794444c9e064e0c" origin="Generated by Gradle"/>
|
<md5 value="22aaff1245b21364e794444c9e064e0c" origin="Generated by Gradle"/>
|
||||||
@@ -3810,6 +3822,12 @@
|
|||||||
<sha256 value="cde3341ba18a2ba262b0b7cf6c55b20c90e8d434e42c9a13e6a3f770db965a88" origin="Generated by Gradle"/>
|
<sha256 value="cde3341ba18a2ba262b0b7cf6c55b20c90e8d434e42c9a13e6a3f770db965a88" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.6.21">
|
||||||
|
<artifact name="kotlin-stdlib-jdk7-1.6.21.jar">
|
||||||
|
<md5 value="73d0db6af7445088858d51a1a6843b75" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="f1b0634dbb94172038463020bb2dd45ca26849f8ce29d625acb0f1569d11dbee" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.7.10">
|
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk7" version="1.7.10">
|
||||||
<artifact name="kotlin-stdlib-jdk7-1.7.10.jar">
|
<artifact name="kotlin-stdlib-jdk7-1.7.10.jar">
|
||||||
<md5 value="16e9288ff1d39c8f983507e3cd72e8a8" origin="Generated by Gradle"/>
|
<md5 value="16e9288ff1d39c8f983507e3cd72e8a8" origin="Generated by Gradle"/>
|
||||||
@@ -3834,6 +3852,12 @@
|
|||||||
<sha256 value="af1ec40c3b951afdcc0c2a0173c7b81763c5281c2d5bafbf0a8544a24c5dcc0c" origin="Generated by Gradle"/>
|
<sha256 value="af1ec40c3b951afdcc0c2a0173c7b81763c5281c2d5bafbf0a8544a24c5dcc0c" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.6.21">
|
||||||
|
<artifact name="kotlin-stdlib-jdk8-1.6.21.jar">
|
||||||
|
<md5 value="9e7ee18a1a5dd5bf070c7e6f706ccc9c" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="dab45489b47736d59fce44b80676f1947a9b6bcab10fd60e878a83bd82a6954c" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.7.10">
|
<component group="org.jetbrains.kotlin" name="kotlin-stdlib-jdk8" version="1.7.10">
|
||||||
<artifact name="kotlin-stdlib-jdk8-1.7.10.jar">
|
<artifact name="kotlin-stdlib-jdk8-1.7.10.jar">
|
||||||
<md5 value="83947a5800c9fae4d5e0aa15ed5f186f" origin="Generated by Gradle"/>
|
<md5 value="83947a5800c9fae4d5e0aa15ed5f186f" origin="Generated by Gradle"/>
|
||||||
@@ -4060,6 +4084,12 @@
|
|||||||
<sha256 value="58a497ab595d83bbbf28892a8b34ab57d94309a8742ee0eba43cb86408d235bf" origin="Generated by Gradle"/>
|
<sha256 value="58a497ab595d83bbbf28892a8b34ab57d94309a8742ee0eba43cb86408d235bf" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.6.4">
|
||||||
|
<artifact name="kotlinx-coroutines-core-jvm-1.6.4.jar">
|
||||||
|
<md5 value="9ba1873872fe1406d39bc40683050c45" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="c24c8bb27bb320c4a93871501a7e5e0c61607638907b197aef675513d4c820be" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.7.1">
|
<component group="org.jetbrains.kotlinx" name="kotlinx-coroutines-core-jvm" version="1.7.1">
|
||||||
<artifact name="kotlinx-coroutines-core-jvm-1.7.1.jar">
|
<artifact name="kotlinx-coroutines-core-jvm-1.7.1.jar">
|
||||||
<md5 value="a9042dc49ad3a7a589e7738729898335" origin="Generated by Gradle"/>
|
<md5 value="a9042dc49ad3a7a589e7738729898335" origin="Generated by Gradle"/>
|
||||||
@@ -4240,6 +4270,18 @@
|
|||||||
<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">
|
||||||
|
<artifact name="lincheck-metadata-2.23.jar">
|
||||||
|
<md5 value="912a6b1128e6995b09cb65192ad64dfe" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="84ac838a5bd04c775c3dfb456c5eb3ccd20f1f358880d79331ab1b7960eceb14" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
|
<component group="org.jetbrains.kotlinx" name="lincheck-jvm" version="2.23">
|
||||||
|
<artifact name="lincheck-jvm-2.23.jar">
|
||||||
|
<md5 value="257be6c6ba50480ddf362b5f9b75b781" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="b828ef373581f811c5093a236c4aac2325a1d45389d27fce19a1da76a4998515" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.jetbrains.teamcity" name="serviceMessages" version="2019.1.4">
|
<component group="org.jetbrains.teamcity" name="serviceMessages" version="2019.1.4">
|
||||||
<artifact name="serviceMessages-2019.1.4.jar">
|
<artifact name="serviceMessages-2019.1.4.jar">
|
||||||
<md5 value="594ba870d461668b72b0bf06675bed14" origin="Generated by Gradle"/>
|
<md5 value="594ba870d461668b72b0bf06675bed14" origin="Generated by Gradle"/>
|
||||||
@@ -4572,6 +4614,12 @@
|
|||||||
<sha256 value="878fbe521731c072d14d2d65b983b1beae6ad06fda0007b6a8bae81f73f433c4" origin="Generated by Gradle"/>
|
<sha256 value="878fbe521731c072d14d2d65b983b1beae6ad06fda0007b6a8bae81f73f433c4" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.ow2.asm" name="asm-analysis" version="9.4">
|
||||||
|
<artifact name="asm-analysis-9.4.jar">
|
||||||
|
<md5 value="707cb3616c99af872dcdd00801723600" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="7b5f8c5e3bf341b5bb570d26f379e3fdebdc32732187159c42479164053f373d" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.ow2.asm" name="asm-commons" version="6.0">
|
<component group="org.ow2.asm" name="asm-commons" version="6.0">
|
||||||
<artifact name="asm-commons-6.0.jar">
|
<artifact name="asm-commons-6.0.jar">
|
||||||
<md5 value="cbe9c8e4ed2a7e27de503b43f6dc4d61" origin="Generated by Gradle"/>
|
<md5 value="cbe9c8e4ed2a7e27de503b43f6dc4d61" origin="Generated by Gradle"/>
|
||||||
@@ -4614,6 +4662,12 @@
|
|||||||
<sha256 value="ff5b3cd331ae8a9a804768280da98f50f424fef23dd3c788bb320e08c94ee598" origin="Generated by Gradle"/>
|
<sha256 value="ff5b3cd331ae8a9a804768280da98f50f424fef23dd3c788bb320e08c94ee598" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.ow2.asm" name="asm-util" version="9.4">
|
||||||
|
<artifact name="asm-util-9.4.jar">
|
||||||
|
<md5 value="3e671d779360f8053109ab99ee169915" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="3d7932b93ff55056641e7cfb601f96bcd5cd071e1b0503c78a5014232297a23e" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.projectlombok" name="lombok" version="1.18.16">
|
<component group="org.projectlombok" name="lombok" version="1.18.16">
|
||||||
<artifact name="lombok-1.18.16.jar">
|
<artifact name="lombok-1.18.16.jar">
|
||||||
<md5 value="fca4ae86d65bc29ad22cb971bd3e3700" origin="Generated by Gradle"/>
|
<md5 value="fca4ae86d65bc29ad22cb971bd3e3700" origin="Generated by Gradle"/>
|
||||||
@@ -4626,6 +4680,12 @@
|
|||||||
<sha256 value="938a2d08fe54050d7610b944d8ddc3a09355710d9e6be0aac838dbc04e9a2825" origin="Generated by Gradle"/>
|
<sha256 value="938a2d08fe54050d7610b944d8ddc3a09355710d9e6be0aac838dbc04e9a2825" origin="Generated by Gradle"/>
|
||||||
</artifact>
|
</artifact>
|
||||||
</component>
|
</component>
|
||||||
|
<component group="org.reflections" name="reflections" version="0.9.12">
|
||||||
|
<artifact name="reflections-0.9.12.jar">
|
||||||
|
<md5 value="59386d63f168cbabb61cdece9fdd55a6" origin="Generated by Gradle"/>
|
||||||
|
<sha256 value="d168f58d32f2ae7ac5a8d5d9092adeee526c604b41125dcb45eea877960a99cf" origin="Generated by Gradle"/>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
<component group="org.robolectric" name="android-all" version="5.0.2_r3-robolectric-r0">
|
<component group="org.robolectric" name="android-all" version="5.0.2_r3-robolectric-r0">
|
||||||
<artifact name="android-all-5.0.2_r3-robolectric-r0.jar">
|
<artifact name="android-all-5.0.2_r3-robolectric-r0.jar">
|
||||||
<md5 value="6b57219b0d85fe3131f9628c454ca616" origin="Generated by Gradle"/>
|
<md5 value="6b57219b0d85fe3131f9628c454ca616" origin="Generated by Gradle"/>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ plugins {
|
|||||||
val testModules = listOf(
|
val testModules = listOf(
|
||||||
":analysis:analysis-api-fir",
|
":analysis:analysis-api-fir",
|
||||||
":analysis:low-level-api-fir",
|
":analysis:low-level-api-fir",
|
||||||
|
":analysis:low-level-api-fir:tests-jdk11",
|
||||||
":analysis:analysis-test-framework",
|
":analysis:analysis-test-framework",
|
||||||
":analysis:analysis-api-impl-barebone",
|
":analysis:analysis-api-impl-barebone",
|
||||||
":analysis:analysis-api-impl-base",
|
":analysis:analysis-api-impl-base",
|
||||||
|
|||||||
@@ -562,6 +562,7 @@ include ":jps:jps-common",
|
|||||||
include ":generators:analysis-api-generator",
|
include ":generators:analysis-api-generator",
|
||||||
":analysis",
|
":analysis",
|
||||||
":analysis:low-level-api-fir",
|
":analysis:low-level-api-fir",
|
||||||
|
":analysis:low-level-api-fir:tests-jdk11",
|
||||||
":analysis:analysis-api-fir:analysis-api-fir-generator",
|
":analysis:analysis-api-fir:analysis-api-fir-generator",
|
||||||
":analysis:analysis-api-fir",
|
":analysis:analysis-api-fir",
|
||||||
":analysis:analysis-api",
|
":analysis:analysis-api",
|
||||||
|
|||||||
Reference in New Issue
Block a user