committed by
Nikolay Krasko
parent
7accbf7e28
commit
ff2c453732
+23
-35
@@ -58,7 +58,6 @@ import org.jetbrains.kotlin.codegen.AsmUtil
|
|||||||
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
|
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
|
||||||
import org.jetbrains.kotlin.config.IncrementalCompilation
|
import org.jetbrains.kotlin.config.IncrementalCompilation
|
||||||
import org.jetbrains.kotlin.config.KotlinCompilerVersion.TEST_IS_PRE_RELEASE_SYSTEM_PROPERTY
|
import org.jetbrains.kotlin.config.KotlinCompilerVersion.TEST_IS_PRE_RELEASE_SYSTEM_PROPERTY
|
||||||
import org.jetbrains.kotlin.config.LanguageVersion
|
|
||||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||||
import org.jetbrains.kotlin.incremental.withIC
|
import org.jetbrains.kotlin.incremental.withIC
|
||||||
import org.jetbrains.kotlin.jps.build.KotlinJpsBuildTestBase.LibraryDependency.*
|
import org.jetbrains.kotlin.jps.build.KotlinJpsBuildTestBase.LibraryDependency.*
|
||||||
@@ -464,6 +463,29 @@ open class KotlinJpsBuildTest : KotlinJpsBuildTestBase() {
|
|||||||
buildAllModules().assertSuccessful()
|
buildAllModules().assertSuccessful()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun testPureJavaProject() {
|
||||||
|
initProject(JVM_FULL_RUNTIME)
|
||||||
|
|
||||||
|
fun build() {
|
||||||
|
var someFilesCompiled = false
|
||||||
|
|
||||||
|
buildCustom(CanceledStatus.NULL, TestProjectBuilderLogger(), BuildResult()) {
|
||||||
|
project.setTestingContext(TestingContext(LookupTracker.DO_NOTHING, object : TestingBuildLogger {
|
||||||
|
override fun compilingFiles(files: Collection<File>, allRemovedFilesFiles: Collection<File>) {
|
||||||
|
someFilesCompiled = true
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
|
assertFalse("Kotlin builder should return early if there are no Kotlin files", someFilesCompiled)
|
||||||
|
}
|
||||||
|
|
||||||
|
build()
|
||||||
|
|
||||||
|
rename("${workDir}/src/Test.java", "Test1.java")
|
||||||
|
build()
|
||||||
|
}
|
||||||
|
|
||||||
fun testKotlinJavaProject() {
|
fun testKotlinJavaProject() {
|
||||||
doTestWithRuntime()
|
doTestWithRuntime()
|
||||||
}
|
}
|
||||||
@@ -626,40 +648,6 @@ open class KotlinJpsBuildTest : KotlinJpsBuildTestBase() {
|
|||||||
result.assertSuccessful()
|
result.assertSuccessful()
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Here we're checking that enabling inference in IDE doesn't affect compilation via JPS
|
|
||||||
*
|
|
||||||
* the following two tests are connected:
|
|
||||||
* - testKotlinProjectWithEnabledNewInferenceInIDE checks that project is compiled when new inference is enabled only in IDE
|
|
||||||
* - this is done via project component
|
|
||||||
* - testKotlinProjectWithErrorsBecauseOfNewInference checks that project isn't compiled when new inference is enabled in the compiler
|
|
||||||
*
|
|
||||||
* So, if the former will fail => option affects JPS compilation, it's bad. Also, if the latter test fails => test is useless as it's
|
|
||||||
* compiled with new and old inference.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
fun testKotlinProjectWithEnabledNewInferenceInIDE() {
|
|
||||||
initProject(JVM_MOCK_RUNTIME)
|
|
||||||
val module = myProject.modules.single()
|
|
||||||
val args = module.kotlinCompilerArguments
|
|
||||||
args.languageVersion = LanguageVersion.KOTLIN_1_3.versionString
|
|
||||||
myProject.kotlinCommonCompilerArguments = args
|
|
||||||
|
|
||||||
buildAllModules().assertSuccessful()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun testKotlinProjectWithErrorsBecauseOfNewInference() {
|
|
||||||
initProject(JVM_MOCK_RUNTIME)
|
|
||||||
val module = myProject.modules.single()
|
|
||||||
val args = module.kotlinCompilerArguments
|
|
||||||
args.newInference = true
|
|
||||||
myProject.kotlinCommonCompilerArguments = args
|
|
||||||
|
|
||||||
val result = buildAllModules()
|
|
||||||
result.assertFailed()
|
|
||||||
result.checkErrors()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun createKotlinJavaScriptLibraryArchive() {
|
private fun createKotlinJavaScriptLibraryArchive() {
|
||||||
val jarFile = File(workDir, KOTLIN_JS_LIBRARY_JAR)
|
val jarFile = File(workDir, KOTLIN_JS_LIBRARY_JAR)
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user