Kapt3: Clear javac's boot classpath (KT-15001)

This commit is contained in:
Yan Zhulanow
2016-11-29 23:17:27 +03:00
committed by Yan Zhulanow
parent ada8bb63a4
commit 5f0d270e9e
21 changed files with 206 additions and 4 deletions
@@ -37,10 +37,16 @@ fun KaptContext.doAnnotationProcessing(
annotationProcessingClasspath: List<File>,
sourcesOutputDir: File,
classesOutputDir: File,
additionalSources: JavacList<JCTree.JCCompilationUnit> = JavacList.nil()
additionalSources: JavacList<JCTree.JCCompilationUnit> = JavacList.nil(),
withJdk: Boolean = false
) {
with (options) {
put(Option.PROC, "only") // Only process annotations
if (!withJdk) {
put(Option.BOOTCLASSPATH, "") // No boot classpath
}
put(Option.CLASSPATH, compileClasspath.joinToString(File.pathSeparator) { it.canonicalPath })
put(Option.PROCESSORPATH, annotationProcessingClasspath.joinToString(File.pathSeparator) { it.canonicalPath })
put(Option.S, sourcesOutputDir.canonicalPath)
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisHandlerExtension
import org.jetbrains.kotlin.test.ConfigurationKind
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.test.util.trimTrailingWhitespacesAndAddNewlineAtEOF
import org.jetbrains.kotlin.utils.PathUtil
import java.io.File
import java.nio.file.Files
import javax.annotation.processing.Completion
@@ -139,7 +140,7 @@ abstract class AbstractKotlinKapt3IntegrationTest : CodegenTestCase() {
javaSourceRoots: List<File>,
outputDir: File,
options: Map<String, String>
) : AbstractKapt3Extension(emptyList(), emptyList(), javaSourceRoots, outputDir, outputDir,
) : AbstractKapt3Extension(PathUtil.getJdkClassesRoots(), emptyList(), javaSourceRoots, outputDir, outputDir,
options, true, System.currentTimeMillis(), KaptLogger(true)
) {
internal var savedStubs: String? = null
@@ -102,7 +102,7 @@ abstract class AbstractKotlinKaptContextTest : AbstractKotlinKapt3Test() {
kaptRunner.doAnnotationProcessing(emptyList(), listOf(JavaKaptContextTest.simpleProcessor()),
compileClasspath = emptyList(), annotationProcessingClasspath = emptyList(),
sourcesOutputDir = sourceOutputDir, classesOutputDir = sourceOutputDir,
additionalSources = compilationUnits)
additionalSources = compilationUnits, withJdk = true)
val javaFiles = sourceOutputDir.walkTopDown().filter { it.isFile && it.extension == "java" }
val actualRaw = javaFiles.sortedBy { it.name }.joinToString(FILE_SEPARATOR) { it.name + ":\n\n" + it.readText() }
@@ -85,7 +85,8 @@ class JavaKaptContextTest {
emptyList(), // compile classpath
emptyList(), // annotation processing classpath
outputDir,
outputDir)
outputDir,
withJdk = true)
}
@Test