[KAPT] KT-64303 Dispose resources allocated by Standalone Analysis API; re-enable Kapt4IT
Merge-request: KT-MR-13510 Merged-by: Pavel Mikhailovskii <Pavel.Mikhailovskii@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
c66370bf93
commit
7b841d90e6
-1
@@ -14,7 +14,6 @@ import kotlin.io.path.name
|
||||
import kotlin.io.path.walk
|
||||
|
||||
@DisplayName("Kapt 4 base checks")
|
||||
@Disabled("Causes OOM on Windows")
|
||||
class Kapt4IT : Kapt3IT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
|
||||
|
||||
-2
@@ -4,7 +4,6 @@ import org.gradle.api.logging.LogLevel
|
||||
import org.gradle.testkit.runner.BuildResult
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.junit.jupiter.api.Disabled
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import java.io.File
|
||||
import java.nio.file.Path
|
||||
@@ -15,7 +14,6 @@ import kotlin.io.path.deleteRecursively
|
||||
import kotlin.io.path.writeText
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@Disabled("Causes OOM on Windows")
|
||||
@DisplayName("Kapt incremental compilation")
|
||||
@OtherGradlePluginTests
|
||||
open class KaptIncrementalIT : KGPBaseTest() {
|
||||
|
||||
-2
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.gradle.incapt.IncrementalBinaryIsolatingProcessor
|
||||
import org.jetbrains.kotlin.gradle.incapt.IncrementalIsolatingProcessor
|
||||
import org.jetbrains.kotlin.gradle.incapt.IncrementalProcessor
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.junit.jupiter.api.Disabled
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import java.io.File
|
||||
import kotlin.io.path.createDirectories
|
||||
@@ -21,7 +20,6 @@ import kotlin.io.path.writeText
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
@Disabled("Causes OOM on Windows")
|
||||
@DisplayName("Kapt incremental tests with aggregating apt")
|
||||
open class KaptIncrementalWithAggregatingApt : KaptIncrementalIT() {
|
||||
|
||||
|
||||
-2
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.gradle.incapt.IncrementalBinaryIsolatingProcessor
|
||||
import org.jetbrains.kotlin.gradle.incapt.IncrementalProcessor
|
||||
import org.jetbrains.kotlin.gradle.incapt.IncrementalProcessorReferencingClasspath
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.junit.jupiter.api.Disabled
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
import org.junit.jupiter.api.condition.DisabledOnOs
|
||||
import org.junit.jupiter.api.condition.OS
|
||||
@@ -24,7 +23,6 @@ import java.util.zip.ZipOutputStream
|
||||
import kotlin.io.path.*
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
@Disabled("Causes OOM on Windows")
|
||||
@DisplayName("Kapt incremental tests with isolating apt")
|
||||
open class KaptIncrementalWithIsolatingApt : KaptIncrementalIT() {
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.kapt4
|
||||
|
||||
import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.psi.PsiFile
|
||||
import com.intellij.psi.PsiJavaFile
|
||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisApiInternals
|
||||
@@ -64,56 +65,63 @@ private class Kapt4AnalysisHandlerExtension : FirAnalysisHandlerExtension() {
|
||||
}
|
||||
}
|
||||
|
||||
val standaloneAnalysisAPISession =
|
||||
buildStandaloneAnalysisAPISession(classLoader = Kapt4AnalysisHandlerExtension::class.java.classLoader) {
|
||||
@Suppress("DEPRECATION") // TODO: KT-61319 Kapt: remove usages of deprecated buildKtModuleProviderByCompilerConfiguration
|
||||
buildKtModuleProviderByCompilerConfiguration(updatedConfiguration)
|
||||
val projectDisposable = Disposer.newDisposable("StandaloneAnalysisAPISession.project")
|
||||
try {
|
||||
val standaloneAnalysisAPISession =
|
||||
buildStandaloneAnalysisAPISession(
|
||||
projectDisposable = projectDisposable,
|
||||
classLoader = Kapt4AnalysisHandlerExtension::class.java.classLoader) {
|
||||
@Suppress("DEPRECATION") // TODO: KT-61319 Kapt: remove usages of deprecated buildKtModuleProviderByCompilerConfiguration
|
||||
buildKtModuleProviderByCompilerConfiguration(updatedConfiguration)
|
||||
|
||||
registerProjectService(KtLifetimeTokenProvider::class.java, KtAlwaysAccessibleLifetimeTokenProvider())
|
||||
}
|
||||
|
||||
val (module, files) = standaloneAnalysisAPISession.modulesWithFiles.entries.single()
|
||||
|
||||
optionsBuilder.apply {
|
||||
projectBaseDir = projectBaseDir ?: module.project.basePath?.let(::File)
|
||||
val contentRoots = configuration[CLIConfigurationKeys.CONTENT_ROOTS] ?: emptyList()
|
||||
compileClasspath.addAll(contentRoots.filterIsInstance<JvmClasspathRoot>().map { it.file })
|
||||
javaSourceRoots.addAll(contentRoots.filterIsInstance<JavaSourceRoot>().map { it.file })
|
||||
classesOutputDir = classesOutputDir ?: configuration.get(JVMConfigurationKeys.OUTPUT_DIRECTORY)
|
||||
}
|
||||
|
||||
if (!optionsBuilder.checkOptions(logger, configuration)) return false
|
||||
val options = optionsBuilder.build()
|
||||
if (options[KaptFlag.VERBOSE]) {
|
||||
logger.info(options.logString())
|
||||
}
|
||||
|
||||
return try {
|
||||
if (options.mode.generateStubs) {
|
||||
generateAndSaveStubs(
|
||||
module,
|
||||
files,
|
||||
options,
|
||||
logger,
|
||||
configuration.getBoolean(CommonConfigurationKeys.REPORT_OUTPUT_FILES),
|
||||
configuration[CommonConfigurationKeys.METADATA_VERSION]
|
||||
)
|
||||
|
||||
}
|
||||
if (options.mode.runAnnotationProcessing) {
|
||||
KaptContext(
|
||||
options,
|
||||
false,
|
||||
logger
|
||||
).use { context ->
|
||||
runProcessors(context, options)
|
||||
registerProjectService(KtLifetimeTokenProvider::class.java, KtAlwaysAccessibleLifetimeTokenProvider())
|
||||
}
|
||||
}
|
||||
true
|
||||
|
||||
} catch (e: Exception) {
|
||||
logger.exception(e)
|
||||
false
|
||||
val (module, files) = standaloneAnalysisAPISession.modulesWithFiles.entries.single()
|
||||
|
||||
optionsBuilder.apply {
|
||||
projectBaseDir = projectBaseDir ?: module.project.basePath?.let(::File)
|
||||
val contentRoots = configuration[CLIConfigurationKeys.CONTENT_ROOTS] ?: emptyList()
|
||||
compileClasspath.addAll(contentRoots.filterIsInstance<JvmClasspathRoot>().map { it.file })
|
||||
javaSourceRoots.addAll(contentRoots.filterIsInstance<JavaSourceRoot>().map { it.file })
|
||||
classesOutputDir = classesOutputDir ?: configuration.get(JVMConfigurationKeys.OUTPUT_DIRECTORY)
|
||||
}
|
||||
|
||||
if (!optionsBuilder.checkOptions(logger, configuration)) return false
|
||||
val options = optionsBuilder.build()
|
||||
if (options[KaptFlag.VERBOSE]) {
|
||||
logger.info(options.logString())
|
||||
}
|
||||
|
||||
return try {
|
||||
if (options.mode.generateStubs) {
|
||||
generateAndSaveStubs(
|
||||
module,
|
||||
files,
|
||||
options,
|
||||
logger,
|
||||
configuration.getBoolean(CommonConfigurationKeys.REPORT_OUTPUT_FILES),
|
||||
configuration[CommonConfigurationKeys.METADATA_VERSION]
|
||||
)
|
||||
|
||||
}
|
||||
if (options.mode.runAnnotationProcessing) {
|
||||
KaptContext(
|
||||
options,
|
||||
false,
|
||||
logger
|
||||
).use { context ->
|
||||
runProcessors(context, options)
|
||||
}
|
||||
}
|
||||
true
|
||||
|
||||
} catch (e: Exception) {
|
||||
logger.exception(e)
|
||||
false
|
||||
}
|
||||
} finally {
|
||||
Disposer.dispose(projectDisposable)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user