Add test of Kotlin Lombok project compilation
This test checks that the project with Lombok plugin will be compiled successfully after successful import (KTIJ-20506) #KTIJ-20641 Fixed
This commit is contained in:
committed by
Space
parent
2c3b2ccf6f
commit
0e0b3e6d75
+4
@@ -47,6 +47,10 @@ abstract class AbstractKotlinJpsBuildTestCase : BaseKotlinJpsBuildTestCase() {
|
||||
return addDependency(KotlinJpsLibrary.JsStdLib)
|
||||
}
|
||||
|
||||
protected fun addKotlinLombokDependency(): JpsLibrary {
|
||||
return addDependency(KotlinJpsLibrary.Lombok)
|
||||
}
|
||||
|
||||
private fun addDependency(library: KotlinJpsLibrary): JpsLibrary {
|
||||
return addDependency(myProject, library)
|
||||
}
|
||||
|
||||
@@ -957,6 +957,11 @@ open class KotlinJpsBuildTest : KotlinJpsBuildTestBase() {
|
||||
}
|
||||
}
|
||||
|
||||
fun testKotlinLombokProjectBuild() {
|
||||
initProject(LOMBOK)
|
||||
buildAllModules().assertSuccessful()
|
||||
}
|
||||
|
||||
private fun BuildResult.checkErrors() {
|
||||
val actualErrors = getMessages(BuildMessage.Kind.ERROR)
|
||||
.map { it as CompilerMessage }
|
||||
|
||||
+22
-1
@@ -12,10 +12,11 @@ import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.module.JpsModule
|
||||
import org.jetbrains.jps.util.JpsPathUtil
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.config.CompilerSettings
|
||||
import org.jetbrains.kotlin.config.KotlinFacetSettings
|
||||
import org.jetbrains.kotlin.jps.model.JpsKotlinFacetModuleExtension
|
||||
import org.jetbrains.kotlin.platform.js.JsPlatforms
|
||||
import org.jetbrains.kotlin.test.util.KtTestUtil
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
import java.io.File
|
||||
import java.nio.file.Paths
|
||||
|
||||
@@ -62,6 +63,7 @@ abstract class KotlinJpsBuildTestBase : AbstractKotlinJpsBuildTestCase() {
|
||||
JVM_FULL_RUNTIME,
|
||||
JS_STDLIB_WITHOUT_FACET,
|
||||
JS_STDLIB,
|
||||
LOMBOK
|
||||
}
|
||||
|
||||
protected fun initProject(libraryDependency: LibraryDependency = LibraryDependency.NONE) {
|
||||
@@ -77,6 +79,10 @@ abstract class KotlinJpsBuildTestBase : AbstractKotlinJpsBuildTestCase() {
|
||||
addKotlinJavaScriptStdlibDependency()
|
||||
setupKotlinJSFacet()
|
||||
}
|
||||
LibraryDependency.LOMBOK -> {
|
||||
addKotlinLombokDependency()
|
||||
setupKotlinLombokFacet()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,6 +99,21 @@ abstract class KotlinJpsBuildTestBase : AbstractKotlinJpsBuildTestCase() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupKotlinLombokFacet() {
|
||||
myProject.modules.forEach {
|
||||
val facet = KotlinFacetSettings()
|
||||
facet.useProjectSettings = false
|
||||
facet.compilerSettings = CompilerSettings().also {
|
||||
it.additionalArguments = "-Xallow-no-source-files -Xplugin=${PathUtil.kotlinPathsForDistDirectory.lombokPluginJarPath}"
|
||||
}
|
||||
|
||||
it.container.setChild(
|
||||
JpsKotlinFacetModuleExtension.KIND,
|
||||
JpsKotlinFacetModuleExtension(facet)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val JDK_NAME = "IDEA_JDK"
|
||||
const val PROJECT_NAME = "kotlinProject"
|
||||
|
||||
@@ -36,6 +36,11 @@ enum class KotlinJpsLibrary(val id: String, vararg val roots: File) {
|
||||
JsTest(
|
||||
"KotlinJavaScriptTest",
|
||||
PathUtil.kotlinPathsForDistDirectory.jsKotlinTestJarPath
|
||||
),
|
||||
Lombok(
|
||||
"lombok",
|
||||
PathUtil.kotlinPathsForDistDirectory.stdlibPath,
|
||||
File(lombok.Lombok::class.java.protectionDomain.codeSource.location.toURI().path)
|
||||
);
|
||||
|
||||
fun create(project: JpsProject): JpsLibrary {
|
||||
|
||||
Reference in New Issue
Block a user