diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index 2647ac27785..9e38d478786 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -53,24 +53,39 @@ abstract class BaseGradleIT { // https://developer.android.com/studio/intro/update.html#download-with-gradle fun acceptAndroidSdkLicenses() = defaultBuildOptions().androidHome?.let { - val sdkLicenses = File(it, "licenses") - sdkLicenses.mkdirs() + val sdkLicensesDir = it.resolve("licenses") + if(!sdkLicensesDir.exists()) sdkLicensesDir.mkdirs() - val sdkLicense = File(sdkLicenses, "android-sdk-license") - if (!sdkLicense.exists()) { - sdkLicense.createNewFile() - sdkLicense.writeText( - """ - 8933bad161af4178b1185d1a37fbf41ea5269c55 - d56f5187479451eabf01fb78af6dfcb131a6481e - 24333f8a63b6825ea9c5514f83c2829b004d1fee - """.trimIndent() + val sdkLicenses = listOf( + "8933bad161af4178b1185d1a37fbf41ea5269c55", + "d56f5187479451eabf01fb78af6dfcb131a6481e", + "24333f8a63b6825ea9c5514f83c2829b004d1fee", + ) + val sdkPreviewLicense = "84831b9409646a918e30573bab4c9c91346d8abd" + + val sdkLicenseFile = sdkLicensesDir.resolve("android-sdk-license") + if (!sdkLicenseFile.exists()) { + sdkLicenseFile.createNewFile() + sdkLicenseFile.writeText( + sdkLicenses.joinToString(separator = "\n") ) + } else { + sdkLicenses + .subtract( + sdkLicenseFile.readText().lines() + ) + .forEach { + sdkLicenseFile.appendText("$it\n") + } } - val sdkPreviewLicense = File(sdkLicenses, "android-sdk-preview-license") - if (!sdkPreviewLicense.exists()) { - sdkPreviewLicense.writeText("84831b9409646a918e30573bab4c9c91346d8abd") + val sdkPreviewLicenseFile = sdkLicensesDir.resolve("android-sdk-preview-license") + if (!sdkPreviewLicenseFile.exists()) { + sdkPreviewLicenseFile.writeText(sdkPreviewLicense) + } else { + if (sdkPreviewLicense != sdkPreviewLicenseFile.readText().trim()) { + sdkPreviewLicenseFile.writeText(sdkPreviewLicense) + } } }