Change existing literal Gradle versions to GradleVersionRequirement

Also add workaround for kotlin-test-common not seen in the IDE
This commit is contained in:
Sergey Igushkin
2017-11-02 21:25:58 +03:00
parent 5bd52311dc
commit 5905b23bf9
22 changed files with 110 additions and 92 deletions
@@ -28,6 +28,10 @@ dependencies {
testCompile gradleApi()
testRuntime project(path: ':kotlin-android-extensions', configuration: 'runtimeJar')
// Workaround for missing transitive import of the common project `kotlin-test-common`
// for `kotlin-test-jvm` into the IDE:
testCompileOnly(project(':kotlin-test:kotlin-test-common')) { transitive = false }
}
// Include Gradle task properties validation into the testing procedure:
@@ -113,3 +117,10 @@ tasks.withType(Test) {
}
}
}
task testAdvanceGradleVersion(type: Test) {
systemProperty("advanceGradleVersion", "4.3-rc-1")
dependsOn = test.dependsOn
}
check.dependsOn(testAdvanceGradleVersion)
@@ -10,10 +10,10 @@ import org.junit.Test
import java.io.File
class KotlinAndroidGradleIT : AbstractKotlinAndroidGradleTests(gradleVersion = "3.4", androidGradlePluginVersion = "2.3.0")
class KotlinAndroidWithJackGradleIT : AbstractKotlinAndroidWithJackGradleTests(gradleVersion = "3.4", androidGradlePluginVersion = "2.3.+")
class KotlinAndroidGradleIT : AbstractKotlinAndroidGradleTests(gradleVersion = GradleVersionAtLeast("3.4"), androidGradlePluginVersion = "2.3.0")
class KotlinAndroidWithJackGradleIT : AbstractKotlinAndroidWithJackGradleTests(androidGradlePluginVersion = "2.3.+")
class KotlinAndroid30GradleIT : AbstractKotlinAndroidGradleTests(gradleVersion = "4.1-rc-1", androidGradlePluginVersion = "3.0.0-beta1") {
class KotlinAndroid30GradleIT : AbstractKotlinAndroidGradleTests(gradleVersion = GradleVersionAtLeast("4.1"), androidGradlePluginVersion = "3.0.0-beta1") {
@Test
fun testApplyWithFeaturePlugin() {
@@ -43,7 +43,7 @@ class KotlinAndroid30GradleIT : AbstractKotlinAndroidGradleTests(gradleVersion =
}
abstract class AbstractKotlinAndroidGradleTests(
protected val gradleVersion: String,
protected val gradleVersion: GradleVersionRequirement,
private val androidGradlePluginVersion: String
) : BaseGradleIT() {
@@ -293,7 +293,6 @@ fun getSomething() = 10
abstract class AbstractKotlinAndroidWithJackGradleTests(
private val gradleVersion: String,
private val androidGradlePluginVersion: String
) : BaseGradleIT() {
@@ -305,7 +304,7 @@ abstract class AbstractKotlinAndroidWithJackGradleTests(
@Test
fun testSimpleCompile() {
val project = Project("AndroidJackProject", gradleVersion)
val project = Project("AndroidJackProject", SpecificGradleVersion("3.4"))
project.build("assemble") {
assertFailed()
@@ -1,6 +1,8 @@
package org.jetbrains.kotlin.gradle
import com.intellij.openapi.util.io.FileUtil
import org.gradle.api.logging.LogLevel
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.util.*
import org.junit.After
import org.junit.AfterClass
@@ -167,7 +169,7 @@ abstract class BaseGradleIT {
open inner class Project(
val projectName: String,
val wrapperVersion: String,
val gradleVersionRequirement: GradleVersionRequirement,
directoryPrefix: String? = null,
val minLogLevel: LogLevel = LogLevel.DEBUG
) {
@@ -228,6 +230,8 @@ abstract class BaseGradleIT {
}
fun Project.build(vararg params: String, options: BuildOptions = defaultBuildOptions(), check: CompiledProject.() -> Unit) {
val wrapperVersion = chooseWrapperVersionOrFinishTest()
val env = createEnvironmentVariablesMap(options)
val wrapperDir = prepareWrapper(wrapperVersion, env)
val cmd = createBuildCommand(wrapperDir, params, options)
@@ -7,7 +7,9 @@ import org.junit.runners.Parameterized.Parameters
@RunWith(Parameterized::class)
abstract class BaseMultiGradleVersionIT : BaseGradleIT() {
@Parameter lateinit var gradleVersion: String
@Parameter lateinit var gradleVersionString: String
protected val gradleVersion get() = SpecificGradleVersion(gradleVersionString)
companion object {
@JvmStatic
@@ -42,7 +42,7 @@ class ClassFileIsRemovedIT : BaseGradleIT() {
}
fun doTest(buildOptions: BuildOptions, transformDummy: (File)->Unit) {
val project = Project("kotlinInJavaRoot", "2.10")
val project = Project("kotlinInJavaRoot", NoSpecificGradleVersion)
project.build("build", options = buildOptions) {
assertSuccessful()
}
@@ -23,7 +23,7 @@ import java.io.File
class CoroutinesIT: BaseGradleIT() {
companion object {
private const val GRADLE_VERSION = "2.14.1"
private val GRADLE_VERSION = NoSpecificGradleVersion
private const val LOCAL_PROPERTIES = "local.properties"
private const val GRADLE_PROPERTIES = "gradle.properties"
}
@@ -20,7 +20,7 @@ class ExecutionStrategyJsIT : ExecutionStrategyIT() {
open class ExecutionStrategyIT : BaseGradleIT() {
companion object {
private const val GRADLE_VERSION = "2.10"
private val GRADLE_VERSION = GradleVersionAtLeast("4.0")
}
@Test
@@ -69,6 +69,6 @@ open class ExecutionStrategyIT : BaseGradleIT() {
}
protected open fun CompiledProject.checkOutput() {
assertFileExists("app/build/classes/main/foo/MainKt.class")
assertFileExists("app/build/classes/kotlin/main/foo/MainKt.class")
}
}
@@ -10,7 +10,7 @@ import java.io.File
class IncrementalCompilationMultiProjectIT : BaseGradleIT() {
companion object {
private val GRADLE_VERSION = "2.10"
private val GRADLE_VERSION = NoSpecificGradleVersion
private val ANDROID_GRADLE_PLUGIN_VERSION = "1.5.+"
}
@@ -178,7 +178,7 @@ open class A {
@Test
fun testAndroid() {
val project = Project("AndroidProject", GRADLE_VERSION)
val project = Project("AndroidProject", SpecificGradleVersion("2.10"))
val options = androidBuildOptions()
project.build("assembleDebug", options = options) {
@@ -12,7 +12,7 @@ class Kapt3Android30IT : Kapt3AndroidIT() {
open class Kapt3AndroidIT : Kapt3BaseIT() {
companion object {
private const val GRADLE_VERSION = "4.1-rc-1"
private val GRADLE_VERSION = GradleVersionAtLeast("4.1")
}
protected open val androidGradlePluginVersion: String
@@ -36,7 +36,7 @@ abstract class Kapt3BaseIT : BaseGradleIT() {
open class Kapt3IT : Kapt3BaseIT() {
companion object {
private const val GRADLE_VERSION = "3.3"
private val GRADLE_VERSION = NoSpecificGradleVersion
}
@Test
@@ -244,7 +244,7 @@ open class Kapt3IT : Kapt3BaseIT() {
@Test
fun testKaptClassesDirSync() {
val project = Project("autoService", GRADLE_VERSION, directoryPrefix = "kapt2")
val project = Project("autoService", SpecificGradleVersion("3.5"), directoryPrefix = "kapt2")
project.build("build") {
assertSuccessful()
@@ -9,7 +9,7 @@ import java.io.File
class KaptIT: BaseGradleIT() {
companion object {
private const val GRADLE_VERSION = "2.14.1"
private val GRADLE_VERSION = NoSpecificGradleVersion
}
@Test
@@ -112,7 +112,7 @@ class KaptIT: BaseGradleIT() {
private fun doTestIncrementalBuild(projectName: String, compileTasks: Array<String>) {
val compileTasksUpToDate = compileTasks.map { it + " UP-TO-DATE" }.toTypedArray()
val project = Project(projectName, "2.10")
val project = Project(projectName, NoSpecificGradleVersion)
project.allowOriginalKapt()
project.build("build") {
@@ -19,7 +19,7 @@ abstract class KaptIncrementalBaseIT(val shouldUseStubs: Boolean, val useKapt3:
}
companion object {
private const val GRADLE_VERSION = "2.10"
private val GRADLE_VERSION = NoSpecificGradleVersion
private val EXAMPLE_ANNOTATION_REGEX = "@(field:)?example.ExampleAnnotation".toRegex()
private const val GENERATE_STUBS_PLACEHOLDER = "GENERATE_STUBS_PLACEHOLDER"
@@ -13,7 +13,7 @@ import kotlin.test.assertTrue
class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testBuildAndClean() {
val project = Project("kotlin2JsProject", "2.10")
val project = Project("kotlin2JsProject", NoSpecificGradleVersion)
project.build("build") {
assertSuccessful()
@@ -34,10 +34,8 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
project.build("build") {
assertSuccessful()
assertContains(
":mainProject:compileKotlin2Js UP-TO-DATE",
":libraryProject:compileTestKotlin2Js UP-TO-DATE"
)
assertContains(":mainProject:compileKotlin2Js UP-TO-DATE")
assertContainsRegex(":libraryProject:compileTestKotlin2Js (UP-TO-DATE|NO-SOURCE)".toRegex())
}
project.build("clean") {
@@ -60,7 +58,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testJarIncludesJsDefaultOutput() {
val project = Project("kotlin2JsNoOutputFileProject", "2.10")
val project = Project("kotlin2JsNoOutputFileProject", NoSpecificGradleVersion)
project.build("jar") {
assertSuccessful()
@@ -76,7 +74,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testJarIncludesJsOutputSetExplicitly() {
val project = Project("kotlin2JsModuleKind", "2.10")
val project = Project("kotlin2JsModuleKind", NoSpecificGradleVersion)
project.build(":jar") {
assertSuccessful()
@@ -92,7 +90,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testModuleKind() {
val project = Project("kotlin2JsModuleKind", "2.10")
val project = Project("kotlin2JsModuleKind", NoSpecificGradleVersion)
project.build("runRhino") {
assertSuccessful()
@@ -101,7 +99,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testDefaultOutputFile() {
val project = Project("kotlin2JsNoOutputFileProject", "2.10")
val project = Project("kotlin2JsNoOutputFileProject", NoSpecificGradleVersion)
project.build("build") {
assertSuccessful()
@@ -112,7 +110,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testCompileTestCouldAccessProduction() {
val project = Project("kotlin2JsProjectWithTests", "2.10")
val project = Project("kotlin2JsProjectWithTests", NoSpecificGradleVersion)
project.build("build") {
assertSuccessful()
@@ -129,7 +127,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testCompilerTestAccessInternalProduction() {
val project = Project("kotlin2JsInternalTest", "2.10")
val project = Project("kotlin2JsInternalTest", SpecificGradleVersion("3.5"))
project.build("runRhino") {
assertSuccessful()
@@ -138,7 +136,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testJsCustomSourceSet() {
val project = Project("kotlin2JsProjectWithCustomSourceset", "2.10")
val project = Project("kotlin2JsProjectWithCustomSourceset", NoSpecificGradleVersion)
project.build("build") {
assertSuccessful()
@@ -161,7 +159,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testKotlinJsBuiltins() {
val project = Project("kotlinBuiltins", "4.0")
val project = Project("kotlinBuiltins", GradleVersionAtLeast("4.0"))
project.setupWorkingDir()
val buildGradle = File(project.projectDir, "app").getFileByName("build.gradle")
@@ -176,7 +174,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testKotlinJsSourceMap() {
val project = Project("kotlin2JsNoOutputFileProject", "2.10")
val project = Project("kotlin2JsNoOutputFileProject", NoSpecificGradleVersion)
project.setupWorkingDir()
@@ -201,12 +199,12 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testKotlinJsSourceMapInline() {
val project = Project("kotlin2JsProjectWithSourceMapInline", "2.10")
val project = Project("kotlin2JsProjectWithSourceMapInline", NoSpecificGradleVersion)
project.build("build") {
assertSuccessful()
val mapFilePath = "app/build/classes/main/app.js.map"
val mapFilePath = kotlinClassesDir(subproject = "app") + "app.js.map"
assertFileExists(mapFilePath)
val map = fileInWorkingDir(mapFilePath).readText()
@@ -219,7 +217,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
@Test
fun testDce() {
val project = Project("kotlin2JsDceProject", "2.10", minLogLevel = LogLevel.INFO)
val project = Project("kotlin2JsDceProject", NoSpecificGradleVersion, minLogLevel = LogLevel.INFO)
project.build("runRhino") {
assertSuccessful()
@@ -303,7 +301,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
/** Issue: KT-18495 */
@Test
fun testNoSeparateClassesDirWarning() {
val project = Project("kotlin2JsProject", "4.0")
val project = Project("kotlin2JsProject", GradleVersionAtLeast("4.0"))
project.build("build") {
assertSuccessful()
assertNotContains("this build assumes a single directory for all classes from a source set")
@@ -311,7 +309,7 @@ class Kotlin2JsGradlePluginIT : BaseGradleIT() {
}
@Test
fun testIncrementalCompilation() = Project("kotlin2JsICProject", "4.0").run {
fun testIncrementalCompilation() = Project("kotlin2JsICProject", GradleVersionAtLeast("4.0")).run {
build("build") {
assertSuccessful()
assertContains(USING_EXPERIMENTAL_JS_INCREMENTAL_COMPILATION_MESSAGE)
@@ -26,7 +26,7 @@ import java.io.File
// todo: test daemon shutdown when gradle daemon dies
class KotlinDaemonIT : BaseGradleIT() {
companion object {
private const val GRADLE_VERSION = "2.10"
private val GRADLE_VERSION = NoSpecificGradleVersion
}
@Test
@@ -30,13 +30,9 @@ import kotlin.test.assertTrue
class KotlinGradleIT: BaseGradleIT() {
companion object {
private const val GRADLE_VERSION = "2.10"
}
@Test
fun testCrossCompile() {
val project = Project("kotlinJavaProject", GRADLE_VERSION)
val project = Project("kotlinJavaProject", NoSpecificGradleVersion)
project.build("compileDeployKotlin", "build") {
assertSuccessful()
@@ -55,7 +51,7 @@ class KotlinGradleIT: BaseGradleIT() {
val wd0 = workingDir
val wd1 = File(wd0, "subdir").apply { mkdirs() }
workingDir = wd1
val project1 = Project("kotlinJavaProject", "3.3")
val project1 = Project("kotlinJavaProject", NoSpecificGradleVersion)
project1.build("assemble") {
assertSuccessful()
@@ -75,7 +71,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testKotlinOnlyCompile() {
val project = Project("kotlinProject", GRADLE_VERSION)
val project = Project("kotlinProject", NoSpecificGradleVersion)
project.build("build") {
assertSuccessful()
@@ -96,7 +92,7 @@ class KotlinGradleIT: BaseGradleIT() {
// In order to stop daemon process, special exit task is used ( System.exit(0) ).
@Test
fun testKotlinOnlyDaemonMemory() {
val project = Project("kotlinProject", GRADLE_VERSION)
val project = Project("kotlinProject", NoSpecificGradleVersion)
val VARIANT_CONSTANT = "ForTest"
val userVariantArg = "-Duser.variant=$VARIANT_CONSTANT"
val MEMORY_MAX_GROWTH_LIMIT_KB = 500
@@ -150,12 +146,12 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testLogLevelForceGC() {
val debugProject = Project("simpleProject", GRADLE_VERSION, minLogLevel = LogLevel.LIFECYCLE)
val debugProject = Project("simpleProject", NoSpecificGradleVersion, minLogLevel = LogLevel.LIFECYCLE)
debugProject.build("build", "-Dkotlin.gradle.test.report.memory.usage=true") {
assertContains("Forcing System.gc()")
}
val infoProject = Project("simpleProject", GRADLE_VERSION, minLogLevel = LogLevel.QUIET)
val infoProject = Project("simpleProject", NoSpecificGradleVersion, minLogLevel = LogLevel.QUIET)
infoProject.build("clean", "build", "-Dkotlin.gradle.test.report.memory.usage=true") {
assertNotContains("Forcing System.gc()")
}
@@ -163,7 +159,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testKotlinClasspath() {
Project("classpathTest", GRADLE_VERSION).build("build") {
Project("classpathTest", NoSpecificGradleVersion).build("build") {
assertSuccessful()
assertReportExists()
assertContains(":compileKotlin", ":compileTestKotlin")
@@ -172,7 +168,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testMultiprojectPluginClasspath() {
Project("multiprojectClassPathTest", GRADLE_VERSION).build("build") {
Project("multiprojectClassPathTest", NoSpecificGradleVersion).build("build") {
assertSuccessful()
assertReportExists("subproject")
assertContains(":subproject:compileKotlin", ":subproject:compileTestKotlin")
@@ -182,7 +178,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testIncremental() {
val project = Project("kotlinProject", GRADLE_VERSION)
val project = Project("kotlinProject", NoSpecificGradleVersion)
val options = defaultBuildOptions().copy(incremental = true)
project.build("build", options = options) {
@@ -213,7 +209,7 @@ class KotlinGradleIT: BaseGradleIT() {
val incremental = defaultBuildOptions().copy(incremental = true)
Project("multiprojectWithDependency", GRADLE_VERSION).build("assemble", options = incremental) {
Project("multiprojectWithDependency", NoSpecificGradleVersion).build("assemble", options = incremental) {
assertSuccessful()
assertReportExists("projA")
assertContains(":projA:compileKotlin")
@@ -222,7 +218,7 @@ class KotlinGradleIT: BaseGradleIT() {
assertContains(":projB:compileKotlin")
assertNotContains("projB:compileKotlin UP-TO-DATE")
}
Project("multiprojectWithDependency", GRADLE_VERSION).modify {
Project("multiprojectWithDependency", NoSpecificGradleVersion).modify {
val oldSrc = File(this.projectDir, "projA/src/main/kotlin/a.kt")
val newSrc = File(this.projectDir, "projA/src/main/kotlin/a.kt.new")
assertTrue { oldSrc.exists() }
@@ -241,7 +237,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testKotlinInJavaRoot() {
Project("kotlinInJavaRoot", GRADLE_VERSION).build("build") {
Project("kotlinInJavaRoot", NoSpecificGradleVersion).build("build") {
assertSuccessful()
assertReportExists()
assertContains(":compileKotlin", ":compileTestKotlin")
@@ -250,7 +246,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testIncrementalPropertyFromLocalPropertiesFile() {
val project = Project("kotlinProject", GRADLE_VERSION)
val project = Project("kotlinProject", NoSpecificGradleVersion)
project.setupWorkingDir()
val localPropertyFile = File(project.projectDir, "local.properties")
@@ -263,12 +259,12 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testIncrementalCompilationLogLevel() {
val infoProject = Project("kotlinProject", GRADLE_VERSION, minLogLevel = LogLevel.INFO)
val infoProject = Project("kotlinProject", NoSpecificGradleVersion, minLogLevel = LogLevel.INFO)
infoProject.build("build") {
assertContains(USING_INCREMENTAL_COMPILATION_MESSAGE)
}
val lifecycleProject = Project("kotlinProject", GRADLE_VERSION, minLogLevel = LogLevel.LIFECYCLE)
val lifecycleProject = Project("kotlinProject", NoSpecificGradleVersion, minLogLevel = LogLevel.LIFECYCLE)
lifecycleProject.build("build") {
assertNotContains(USING_INCREMENTAL_COMPILATION_MESSAGE)
}
@@ -276,7 +272,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testConvertJavaToKotlin() {
val project = Project("convertBetweenJavaAndKotlin", GRADLE_VERSION)
val project = Project("convertBetweenJavaAndKotlin", NoSpecificGradleVersion)
project.setupWorkingDir()
val barKt = project.projectDir.getFileByName("Bar.kt")
@@ -303,7 +299,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testWipeClassesDirectoryBetweenBuilds() {
val project = Project("kotlinJavaProject", GRADLE_VERSION)
val project = Project("kotlinJavaProject", NoSpecificGradleVersion)
project.build("build") {
assertSuccessful()
@@ -321,7 +317,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testMoveClassToOtherModule() {
val project = Project("moveClassToOtherModule", GRADLE_VERSION)
val project = Project("moveClassToOtherModule", NoSpecificGradleVersion)
project.build("build") {
assertSuccessful()
@@ -337,7 +333,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testTypeAliasIncremental() {
val project = Project("typeAlias", GRADLE_VERSION)
val project = Project("typeAlias", NoSpecificGradleVersion)
val options = defaultBuildOptions().copy(incremental = true)
project.build("build", options = options) {
@@ -359,7 +355,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testKotlinBuiltins() {
val project = Project("kotlinBuiltins", "4.0")
val project = Project("kotlinBuiltins", GradleVersionAtLeast("4.0"))
project.build("build") {
assertSuccessful()
@@ -368,7 +364,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testCustomCompilerFile() {
val project = Project("customCompilerFile", GRADLE_VERSION)
val project = Project("customCompilerFile", NoSpecificGradleVersion)
project.setupWorkingDir()
// copy compiler embeddable to project dir using custom name
@@ -385,7 +381,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testFreeCompilerArgs() {
val project = Project("kotlinProject", GRADLE_VERSION)
val project = Project("kotlinProject", NoSpecificGradleVersion)
project.setupWorkingDir()
val customModuleName = "custom_module_name"
@@ -405,7 +401,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testChangeDestinationDir() {
val project = Project("kotlinProject", "3.3")
val project = Project("kotlinProject", SpecificGradleVersion("3.5"))
project.setupWorkingDir()
val fileToRemove = File(project.projectDir, "src/main/kotlin/removeMe.kt")
@@ -441,7 +437,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testDowngradeTo106() {
val project = Project("kotlinProject", GRADLE_VERSION)
val project = Project("kotlinProject", NoSpecificGradleVersion)
val options = defaultBuildOptions().copy(incremental = true, withDaemon = false)
project.build("assemble", options = options) {
@@ -455,7 +451,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testOmittedStdlibVersion() {
val project = Project("kotlinProject", "4.4")
val project = Project("kotlinProject", GradleVersionAtLeast("4.4"))
project.setupWorkingDir()
File(project.projectDir, "build.gradle").modify {
it.replace("kotlin-stdlib:\$kotlin_version", "kotlin-stdlib").apply { check(!equals(it)) } + "\n" + """
@@ -476,7 +472,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testCleanAfterIncrementalBuild() {
val project = Project("kotlinProject", "3.3")
val project = Project("kotlinProject", NoSpecificGradleVersion)
val options = defaultBuildOptions().copy(incremental = true)
project.build("build", "clean", options = options) {
@@ -486,7 +482,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testIncrementalTestCompile() {
val project = Project("kotlinProject", GRADLE_VERSION)
val project = Project("kotlinProject", NoSpecificGradleVersion)
val options = defaultBuildOptions().copy(incremental = true)
project.build("build", options = options) {
@@ -507,7 +503,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testLanguageVersionApiVersionExplicit() {
val project = Project("kotlinProject", "3.3")
val project = Project("kotlinProject", NoSpecificGradleVersion)
project.setupWorkingDir()
val buildGradle = File(project.projectDir, "build.gradle")
@@ -556,7 +552,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testSeparateOutputGradle40() {
val project = Project("kotlinJavaProject", "4.0")
val project = Project("kotlinJavaProject", GradleVersionAtLeast("4.0"))
project.build("compileDeployKotlin", "assemble") {
assertSuccessful()
@@ -579,7 +575,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testArchiveBaseNameForModuleName() {
val project = Project("simpleProject", "4.0")
val project = Project("simpleProject", NoSpecificGradleVersion)
project.setupWorkingDir()
val archivesBaseName = "myArchivesBaseName"
@@ -603,7 +599,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testJavaPackagePrefix() {
val project = Project("javaPackagePrefix", "4.0")
val project = Project("javaPackagePrefix", NoSpecificGradleVersion)
project.build("build") {
assertSuccessful()
@@ -645,7 +641,7 @@ class KotlinGradleIT: BaseGradleIT() {
assertNotContains(CopyClassesToJavaOutputStatus.gradleVersionTooLowWarningMessage)
}
Project("simpleProject", "4.0").apply {
Project("simpleProject", SpecificGradleVersion("4.0")).apply {
build("build") {
check(copyClassesToJavaOutput = false,
expectBuildCacheWarning = false,
@@ -665,7 +661,7 @@ class KotlinGradleIT: BaseGradleIT() {
projectDir.deleteRecursively()
}
Project("simpleProject", "3.4").apply {
Project("simpleProject", SpecificGradleVersion("3.4")).apply {
setupWorkingDir()
File(projectDir, "build.gradle").appendText("\nkotlin.copyClassesToJavaOutput = true")
build("build") {
@@ -678,7 +674,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testSrcDirTaskDependency() {
Project("simpleProject", "4.1").apply {
Project("simpleProject", GradleVersionAtLeast("4.1")).apply {
setupWorkingDir()
File(projectDir, "build.gradle").appendText("""${'\n'}
task generateSources {
@@ -707,7 +703,7 @@ class KotlinGradleIT: BaseGradleIT() {
@Test
fun testSourceJar() {
Project("simpleProject", "4.1").apply {
Project("simpleProject", NoSpecificGradleVersion).apply {
setupWorkingDir()
val additionalSrcDir = "src/additional/kotlin/"
@@ -69,7 +69,7 @@ class KotlinGradlePluginMultiVersionIT : BaseMultiGradleVersionIT() {
@Test
fun testJavaIcCompatibility() {
val version = gradleVersion.split(".").map(String::toInt)
val version = gradleVersionString.split(".").map(String::toInt)
val expectIncrementalCompilation = version.let { (major, minor) -> major > 2 || major == 2 && minor >= 14 }
val expectVerboseIncrementalLogs = version.let { (major, minor) -> major < 3 || major == 3 && minor < 4 }
@@ -130,7 +130,7 @@ class KotlinGradlePluginMultiVersionIT : BaseMultiGradleVersionIT() {
@Test
fun testJavaLibraryCompatibility() {
Assume.assumeTrue("The java-library plugin is supported only in Gradle 3.4+ (current: $gradleVersion)",
gradleVersion.split(".").map(String::toInt).let { (major, minor) ->
gradleVersionString.split(".").map(String::toInt).let { (major, minor) ->
major > 3 || major == 3 && minor >= 4
})
@@ -27,12 +27,12 @@ import java.io.File
class MultiplatformGradleIT : BaseGradleIT() {
companion object {
private const val GRADLE_VERSION = "4.2"
private val GRADLE_VERSION = NoSpecificGradleVersion
}
@Test
fun testMultiplatformCompile() {
val project = Project("multiplatformProject", GRADLE_VERSION)
val project = Project("multiplatformProject", GradleVersionAtLeast("4.0"))
project.build("build") {
assertSuccessful()
@@ -89,7 +89,7 @@ class MultiplatformGradleIT : BaseGradleIT() {
@Test
fun testSubprojectWithAnotherClassLoader() {
with(Project("multiplatformProject", GRADLE_VERSION)) {
with(Project("multiplatformProject", GradleVersionAtLeast("4.0"))) {
setupWorkingDir()
// Make sure there is a plugin applied with the plugins DSL, so that Gradle loads the
@@ -50,7 +50,7 @@ class PluginsDslIT : BaseGradleIT() {
}
companion object {
private const val GRADLE_VERSION = "4.0"
private val GRADLE_VERSION = GradleVersionAtLeast("4.0")
private const val DIRECTORY_PREFIX = "pluginsDsl"
private const val MAVEN_LOCAL_URL_PLACEHOLDER = "<mavenLocalUrl>"
@@ -62,7 +62,7 @@ class PluginsDslIT : BaseGradleIT() {
private fun projectWithMavenLocalPlugins(
projectName: String,
wrapperVersion: String = GRADLE_VERSION,
wrapperVersion: GradleVersionRequirement = GRADLE_VERSION,
directoryPrefix: String? = DIRECTORY_PREFIX,
minLogLevel: LogLevel = LogLevel.DEBUG
): Project {
@@ -9,7 +9,7 @@ import kotlin.test.assertTrue
class SimpleKotlinGradleIT : BaseGradleIT() {
companion object {
private const val GRADLE_VERSION = "2.10"
private val GRADLE_VERSION = NoSpecificGradleVersion
}
@Test
@@ -7,7 +7,7 @@ import org.junit.Test
class TestRootAffectedIT : BaseGradleIT() {
@Test
fun testSourceRootClassIsModifiedIC() {
val project = Project("kotlinProject", "4.1")
val project = Project("kotlinProject", GradleVersionAtLeast("4.1"))
val buildOptions = defaultBuildOptions().copy(incremental = true)
project.build("build", options = buildOptions) {
@@ -37,7 +37,7 @@ class TestRootAffectedIT : BaseGradleIT() {
@Test
fun testSourceRootClassIsRemovedIC() {
// todo: update Gradle after https://github.com/gradle/gradle/issues/3051 is resolved
val project = Project("kotlinProject", "3.0")
val project = Project("kotlinProject", SpecificGradleVersion("3.0"))
val buildOptions = defaultBuildOptions().copy(incremental = true)
project.build("build", options = buildOptions) {
@@ -55,7 +55,7 @@ class TestRootAffectedIT : BaseGradleIT() {
@Test
fun testTestRootClassIsRemovedIC() {
val project = Project("kotlinProject", "4.1")
val project = Project("kotlinProject", GradleVersionAtLeast("4.1"))
val buildOptions = defaultBuildOptions().copy(incremental = true)
project.build("build", options = buildOptions) {
@@ -32,7 +32,7 @@ class UpToDateIT : BaseGradleIT() {
}
private fun testMutations(vararg mutations: ProjectMutation) {
val project = Project("simpleProject", "4.1")
val project = Project("simpleProject", NoSpecificGradleVersion)
project.setupWorkingDir()
mutations.forEach {
it.initProject(project)
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.jps
import org.gradle.api.logging.LogLevel
import org.jetbrains.kotlin.gradle.BaseGradleIT
import org.jetbrains.kotlin.gradle.SpecificGradleVersion
import org.jetbrains.kotlin.incremental.BuildStep
import org.jetbrains.kotlin.incremental.parseTestBuildLog
import org.jetbrains.kotlin.incremental.testingUtils.*
@@ -11,7 +12,14 @@ import kotlin.test.assertEquals
abstract class BaseIncrementalGradleIT : BaseGradleIT() {
inner class JpsTestProject(val buildLogFinder: BuildLogFinder, val resourcesBase: File, val relPath: String, wrapperVersion: String = "2.10", minLogLevel: LogLevel = LogLevel.DEBUG) : Project(File(relPath).name, wrapperVersion, null, minLogLevel) {
inner class JpsTestProject(
val buildLogFinder: BuildLogFinder,
val resourcesBase: File,
val relPath: String,
wrapperVersion: String = "2.10",
minLogLevel: LogLevel = LogLevel.DEBUG
) : Project(File(relPath).name, SpecificGradleVersion(wrapperVersion), null, minLogLevel) {
override val resourcesRoot = File(resourcesBase, relPath)
val mapWorkingToOriginalFile = hashMapOf<File, File>()