Skip to content

Commit dd58e1c

Browse files
committed
Restore kover and run it on CI
Additionally cleanup a bit plugins sections of build scripts
1 parent 50b2dd9 commit dd58e1c

File tree

12 files changed

+28
-11
lines changed

12 files changed

+28
-11
lines changed

build-logic/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ dependencies {
1010
implementation(libs.kotlin.gradle.plugin)
1111
implementation(libs.kotlin.allopen.gradle.plugin)
1212
implementation(libs.kotlin.dokka.gradle.plugin)
13+
implementation(libs.kotlinx.kover.gradle.plugin)
1314
implementation(libs.kotlinx.benchmark.gradle.plugin)
1415
implementation(libs.android.gradle.plugin)
1516
implementation(libs.maven.publish.gradle.plugin)

build-logic/src/main/kotlin/ckbuild.multiplatform-provider-tests.gradle.kts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.gradle.targets.jvm.tasks.*
1212
import org.jetbrains.kotlin.gradle.targets.native.tasks.*
1313

1414
plugins {
15-
kotlin("multiplatform")
15+
id("ckbuild.multiplatform-tests")
1616
id("testtool.server")
1717
}
1818

@@ -50,7 +50,10 @@ registerTestAggregationTask(
5050
name = "jvmAllProviderTest",
5151
taskDependencies = { tasks.withType<KotlinJvmTest>() },
5252
targetFilter = { it.platformType == KotlinPlatformType.jvm }
53-
)
53+
) {
54+
// kover is only supported for JVM tests
55+
finalizedBy("koverVerify")
56+
}
5457

5558
// test only on min and max JDK versions
5659
registerTestAggregationTask(

build-logic/src/main/kotlin/ckbuild.multiplatform-tests.gradle.kts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@ plugins {
1616
id("ckbuild.multiplatform-base")
1717
}
1818

19+
// https://github.com/Kotlin/kotlinx-kover/issues/747
20+
if (project.name != "cryptography-provider-jdk-android-tests") {
21+
plugins.apply("org.jetbrains.kotlinx.kover")
22+
} else {
23+
// as we depend on it in the ` jvmAllTest ` task
24+
tasks.register("koverVerify")
25+
}
26+
1927
@OptIn(ExperimentalKotlinGradlePluginApi::class)
2028
kotlin {
2129
// just applying `kotlin-test` doesn't work for JVM if there are multiple test tasks (like when we test on different JDKs)
@@ -73,7 +81,10 @@ registerTestAggregationTask(
7381
name = "jvmAllTest",
7482
taskDependencies = { tasks.withType<KotlinJvmTest>() },
7583
targetFilter = { it.platformType == KotlinPlatformType.jvm }
76-
)
84+
) {
85+
// kover is only supported for JVM tests
86+
finalizedBy("koverVerify")
87+
}
7788

7889
registerTestAggregationTask(
7990
name = "nativeTest",
@@ -96,5 +107,5 @@ listOf("ios", "watchos", "tvos", "macos").forEach { targetGroup ->
96107
}
97108

98109
if (providers.gradleProperty("ckbuild.skipTestTasks").map(String::toBoolean).getOrElse(false)) {
99-
tasks.matching { it is AbstractTestTask || it is AndroidTestTask }.configureEach { onlyIf { false } }
110+
tasks.matching { it is AbstractTestTask || it is AndroidTestTask || it.name == "koverVerify" }.configureEach { onlyIf { false } }
100111
}

build-logic/src/main/kotlin/ckbuild/tests/TestAggregation.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ fun Project.registerTestAggregationTask(
1313
name: String,
1414
taskDependencies: () -> TaskCollection<*>,
1515
targetFilter: (KotlinTarget) -> Boolean,
16+
configure: Task.() -> Unit = {},
1617
) {
1718
extensions.configure<KotlinMultiplatformExtension>("kotlin") {
1819
var called = false
@@ -23,6 +24,7 @@ fun Project.registerTestAggregationTask(
2324
tasks.register(name) {
2425
group = "verification"
2526
dependsOn(taskDependencies())
27+
configure()
2628
}
2729
}
2830
}

cryptography-bigint/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import org.jetbrains.kotlin.gradle.*
77

88
plugins {
99
id("ckbuild.multiplatform-library")
10-
alias(libs.plugins.kotlin.plugin.serialization)
10+
id("org.jetbrains.kotlin.plugin.serialization")
1111
}
1212

1313
description = "cryptography-kotlin BigInt API"

cryptography-providers/jdk/android-tests/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import ckbuild.*
66

77
plugins {
8-
id("ckbuild.multiplatform-tests")
98
id("ckbuild.multiplatform-provider-tests")
109
}
1110

cryptography-providers/openssl3/prebuilt/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ import org.jetbrains.kotlin.gradle.tasks.*
1212

1313
plugins {
1414
id("ckbuild.multiplatform-library")
15-
id("ckbuild.use-openssl")
1615
id("ckbuild.multiplatform-provider-tests")
16+
id("ckbuild.use-openssl")
1717
}
1818

1919
description = "cryptography-kotlin OpenSSL3 provider (prebuilt)"

cryptography-providers/openssl3/shared/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import org.jetbrains.kotlin.konan.target.*
1010

1111
plugins {
1212
id("ckbuild.multiplatform-library")
13-
id("ckbuild.use-openssl")
1413
id("ckbuild.multiplatform-provider-tests")
14+
id("ckbuild.use-openssl")
1515
}
1616

1717
description = "cryptography-kotlin OpenSSL3 provider (shared)"

cryptography-providers/tests/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import org.jetbrains.kotlin.gradle.*
77

88
plugins {
99
id("ckbuild.multiplatform-tests")
10-
1110
id("org.jetbrains.kotlin.plugin.serialization")
1211
}
1312

cryptography-serialization/asn1/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import ckbuild.*
66

77
plugins {
88
id("ckbuild.multiplatform-library")
9-
alias(libs.plugins.kotlin.plugin.serialization)
9+
id("org.jetbrains.kotlin.plugin.serialization")
1010
}
1111

1212
description = "cryptography-kotlin ASN.1 (DER) API"

0 commit comments

Comments
 (0)