diff --git a/kover-gradle-plugin/src/functionalTest/kotlin/kotlinx/kover/gradle/plugin/test/functional/cases/FinalizingEnqueueTests.kt b/kover-gradle-plugin/src/functionalTest/kotlin/kotlinx/kover/gradle/plugin/test/functional/cases/FinalizingEnqueueTests.kt new file mode 100644 index 00000000..97475fd3 --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/kotlin/kotlinx/kover/gradle/plugin/test/functional/cases/FinalizingEnqueueTests.kt @@ -0,0 +1,12 @@ +package kotlinx.kover.gradle.plugin.test.functional.cases + +import kotlinx.kover.gradle.plugin.test.functional.framework.checker.CheckerContext +import kotlinx.kover.gradle.plugin.test.functional.framework.starter.TemplateTest + +internal class FinalizingEnqueueTests { + @TemplateTest("android-subproject-apply", [":app:koverHtmlReportDebug"]) + fun CheckerContext.testPluginsOrder() { + // if Kotlin Gradle Plugin is applied before any Android Gradle Plugin and Kover is applied from `subprojects` block, `Attempt to queue after finalizing` error should not occur + // see https://github.com/Kotlin/kotlinx-kover/issues/610 + } +} diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-common-verify/app/build.gradle.kts b/kover-gradle-plugin/src/functionalTest/templates/builds/android-common-verify/app/build.gradle.kts index 942d20d0..62c72eaa 100644 --- a/kover-gradle-plugin/src/functionalTest/templates/builds/android-common-verify/app/build.gradle.kts +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-common-verify/app/build.gradle.kts @@ -48,12 +48,14 @@ dependencies { * Kover configs */ -koverReport { - verify { - rule { - // always fails - minBound(100) - maxBound(0) +kover { + reports { + verify { + rule { + // always fails + minBound(100) + maxBound(0) + } } } } diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/build.gradle.kts b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/build.gradle.kts new file mode 100644 index 00000000..92d09d44 --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/build.gradle.kts @@ -0,0 +1,46 @@ +plugins { + id ("org.jetbrains.kotlin.android") + id ("com.android.application") +} + +android { + namespace = "kotlinx.kover.test.android" + compileSdk = 32 + + defaultConfig { + applicationId = "kotlinx.kover.test.android" + minSdk = 21 + targetSdk = 31 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = true + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + viewBinding = true + } +} + +dependencies { + implementation("androidx.core:core-ktx:1.8.0") + implementation("androidx.appcompat:appcompat:1.5.0") + implementation("com.google.android.material:material:1.6.1") + implementation("androidx.constraintlayout:constraintlayout:2.1.4") + testImplementation("junit:junit:4.13.2") +} + + + diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/AndroidManifest.xml b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..358fac25 --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/AndroidManifest.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/java/kotlinx/kover/test/android/DebugUtil.kt b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/java/kotlinx/kover/test/android/DebugUtil.kt new file mode 100644 index 00000000..efe82040 --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/java/kotlinx/kover/test/android/DebugUtil.kt @@ -0,0 +1,7 @@ +package kotlinx.kover.test.android + +object DebugUtil { + fun log(message: String) { + println("DEBUG: $message") + } +} \ No newline at end of file diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/java/kotlinx/kover/test/android/MainActivity.kt b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/java/kotlinx/kover/test/android/MainActivity.kt new file mode 100644 index 00000000..1caaf5b6 --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/java/kotlinx/kover/test/android/MainActivity.kt @@ -0,0 +1,13 @@ +package kotlinx.kover.test.android + +import android.os.Bundle +import android.app.Activity + +class MainActivity : Activity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_main) + } + +} diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/java/kotlinx/kover/test/android/Maths.kt b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/java/kotlinx/kover/test/android/Maths.kt new file mode 100644 index 00000000..03edc099 --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/java/kotlinx/kover/test/android/Maths.kt @@ -0,0 +1,13 @@ +package kotlinx.kover.test.android + +object Maths { + fun sum(a: Int, b: Int): Int { + DebugUtil.log("invoked sum") + return a + b + } + + fun sub(a: Int, b: Int): Int { + DebugUtil.log("invoked sub") + return a - b + } +} \ No newline at end of file diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/layout/activity_main.xml b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/layout/activity_main.xml new file mode 100644 index 00000000..ee57d166 --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,36 @@ + + + + + + + + \ No newline at end of file diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/values/colors.xml b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/values/colors.xml new file mode 100644 index 00000000..f8c6127d --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/values/strings.xml b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/values/strings.xml new file mode 100644 index 00000000..fa43411e --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Android Test + \ No newline at end of file diff --git a/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/values/themes.xml b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/values/themes.xml new file mode 100644 index 00000000..0b4cfc4c --- /dev/null +++ b/kover-gradle-plugin/src/functionalTest/templates/builds/android-subproject-apply/app/src/main/res/values/themes.xml @@ -0,0 +1,4 @@ + + +