javac-wrapper: fixes after rebase and review
This commit is contained in:
committed by
Alexander Baratynskiy
parent
2dc0c55e76
commit
67fdd9f76e
+10
-3
@@ -27,15 +27,22 @@ import java.io.File
|
||||
abstract class AbstractDiagnosticsUsingJavacTest : AbstractDiagnosticsTest() {
|
||||
|
||||
override fun analyzeAndCheck(testDataFile: File, files: List<TestFile>) {
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(testDataFile.readText(), "// JAVAC_SKIP")) {
|
||||
val testDataFileText = testDataFile.readText()
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(testDataFileText, "// JAVAC_SKIP")) {
|
||||
println("${testDataFile.name} test is skipped")
|
||||
return
|
||||
}
|
||||
val groupedByModule = files.groupBy(TestFile::module)
|
||||
val allKtFiles = groupedByModule.values.flatMap { getKtFiles(it, true) }
|
||||
val mockJdk = listOf(File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/rt.jar"))
|
||||
|
||||
environment.registerJavac(kotlinFiles = allKtFiles, bootClasspath = mockJdk)
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(testDataFileText, "// FULL_JDK")) {
|
||||
environment.registerJavac(kotlinFiles = allKtFiles)
|
||||
}
|
||||
else {
|
||||
val mockJdk = listOf(File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/rt.jar"))
|
||||
environment.registerJavac(kotlinFiles = allKtFiles, bootClasspath = mockJdk)
|
||||
}
|
||||
|
||||
environment.configuration.put(JVMConfigurationKeys.USE_JAVAC, true)
|
||||
super.analyzeAndCheck(testDataFile, files)
|
||||
}
|
||||
|
||||
@@ -256,8 +256,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
||||
Pair<PackageViewDescriptor, BindingContext> javaPackageAndContext = compileJavaAndLoadTestPackageAndBindingContextFromBinary(
|
||||
srcFiles, compiledDir, ConfigurationKind.ALL
|
||||
);
|
||||
|
||||
checkJavaPackage(getTxtFile(javaFileName), javaPackageAndContext.first, javaPackageAndContext.second, configuration);
|
||||
checkJavaPackage(getExpectedFile(javaFileName.replaceFirst("\\.java$", ".txt")), javaPackageAndContext.first, javaPackageAndContext.second, configuration);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -300,10 +299,10 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
||||
}
|
||||
}
|
||||
|
||||
private static File getTxtFile(String javaFileName) {
|
||||
private File getTxtFile(String javaFileName) {
|
||||
try {
|
||||
String fileText = FileUtil.loadFile(new File(javaFileName));
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(fileText, "// JAVAC_EXPECTED_FILE")) {
|
||||
if (useJavacWrapper() && InTextDirectivesUtils.isDirectiveDefined(fileText, "// JAVAC_EXPECTED_FILE")) {
|
||||
return new File(javaFileName.replaceFirst("\\.java$", ".javac.txt"));
|
||||
}
|
||||
else return new File(javaFileName.replaceFirst("\\.java$", ".txt"));
|
||||
@@ -313,10 +312,10 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
||||
}
|
||||
}
|
||||
|
||||
private static File getTxtFileFromKtFile(String ktFileName) {
|
||||
private File getTxtFileFromKtFile(String ktFileName) {
|
||||
try {
|
||||
String fileText = FileUtil.loadFile(new File(ktFileName));
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(fileText, "// JAVAC_EXPECTED_FILE")) {
|
||||
if (useJavacWrapper() && InTextDirectivesUtils.isDirectiveDefined(fileText, "// JAVAC_EXPECTED_FILE")) {
|
||||
return new File(ktFileName.replaceFirst("\\.kt$", ".javac.txt"));
|
||||
}
|
||||
else return new File(ktFileName.replaceFirst("\\.kt$", ".txt"));
|
||||
|
||||
+8
@@ -19,6 +19,8 @@ package org.jetbrains.kotlin.jvm.compiler.javac
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.jvm.compiler.AbstractLoadJavaTest
|
||||
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractLoadJavaUsingJavacTest : AbstractLoadJavaTest() {
|
||||
override fun registerJavacIfNeeded(environment: KotlinCoreEnvironment) {
|
||||
@@ -28,6 +30,12 @@ abstract class AbstractLoadJavaUsingJavacTest : AbstractLoadJavaTest() {
|
||||
|
||||
override fun useJavacWrapper() = true
|
||||
|
||||
override fun getExpectedFile(expectedFileName: String): File {
|
||||
val differentResultFile = KotlinTestUtils.replaceExtension(File(expectedFileName), "javac.txt")
|
||||
if (differentResultFile.exists()) return differentResultFile
|
||||
return super.getExpectedFile(expectedFileName)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
object JavacRegistrarForTests {
|
||||
|
||||
Reference in New Issue
Block a user