!fixup [Gradle] refactor Gradle task assertion utils for clarity

- Rename/update to differentiate between 'executed' tasks vs tasks
  that are not in the task graph
- de-duplicate assertTasksNotExecuted() / assertTasksAreNotInTaskGraph()
  they both did the same thing
- re-use code for verifying all tasks have a specific outcome
- add a more helpful failed assertion message if the task isn't found
- rename 'tasks' to 'taskPaths' for clarity
This commit is contained in:
Adam Semenenko
2024-01-10 12:45:54 +01:00
committed by Space Team
parent 1661957166
commit a6524be97a
4 changed files with 41 additions and 23 deletions
@@ -20,7 +20,8 @@ import org.jetbrains.kotlin.konan.target.KonanTarget.*
import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.io.TempDir import org.junit.jupiter.api.io.TempDir
import java.nio.file.Path import java.nio.file.Path
import kotlin.io.path.* import kotlin.io.path.Path
import kotlin.io.path.walk
import kotlin.test.assertTrue import kotlin.test.assertTrue
import kotlin.test.fail import kotlin.test.fail
@@ -124,8 +125,10 @@ open class CommonizerIT : KGPBaseTest() {
} }
build(":commonize") { build(":commonize") {
assertNativeDistributionCommonizationCacheHit() assertNativeDistributionCommonizationCacheHit()
assertTasksAreNotInTaskGraph(":cinteropCurlTargetA") assertTasksAreNotInTaskGraph(
assertTasksAreNotInTaskGraph(":cinteropCurlTargetB") ":cinteropCurlTargetA",
":cinteropCurlTargetB",
)
} }
} }
} }
@@ -144,9 +147,11 @@ open class CommonizerIT : KGPBaseTest() {
build(":commonize") { build(":commonize") {
assertTasksExecuted(":commonizeNativeDistribution") assertTasksExecuted(":commonizeNativeDistribution")
assertTasksAreNotInTaskGraph(":cinteropCurlTargetA") assertTasksAreNotInTaskGraph(
assertTasksAreNotInTaskGraph(":cinteropCurlTargetB") ":cinteropCurlTargetA",
assertTasksAreNotInTaskGraph(":commonizeCInterop") ":cinteropCurlTargetB",
":commonizeCInterop",
)
} }
build(":commonize", "-Pkotlin.mpp.enableCInteropCommonization=true") { build(":commonize", "-Pkotlin.mpp.enableCInteropCommonization=true") {
@@ -158,14 +163,15 @@ open class CommonizerIT : KGPBaseTest() {
build(":commonize", "-Pkotlin.mpp.enableCInteropCommonization=false") { build(":commonize", "-Pkotlin.mpp.enableCInteropCommonization=false") {
assertNativeDistributionCommonizationCacheHit() assertNativeDistributionCommonizationCacheHit()
assertTasksAreNotInTaskGraph(":cinteropCurlTargetA") assertTasksAreNotInTaskGraph(
assertTasksAreNotInTaskGraph(":cinteropCurlTargetB") ":cinteropCurlTargetA",
assertTasksAreNotInTaskGraph(":commonizeCInterop") ":cinteropCurlTargetB",
":commonizeCInterop",
)
} }
} }
} }
@DisplayName("Commonize Curl Interop copy CommonizeCInterop for Ide") @DisplayName("Commonize Curl Interop copy CommonizeCInterop for Ide")
@GradleTest @GradleTest
fun testCommonizeCurlInteropcopyCommonizeCInteropForIde( fun testCommonizeCurlInteropcopyCommonizeCInteropForIde(
@@ -514,10 +520,14 @@ open class CommonizerIT : KGPBaseTest() {
fun testCommonizationWithTwoCInteropCommonizerGroups(gradleVersion: GradleVersion) { fun testCommonizationWithTwoCInteropCommonizerGroups(gradleVersion: GradleVersion) {
nativeProject("commonize-kt-57796-twoCInteropCommonizerGroups", gradleVersion) { nativeProject("commonize-kt-57796-twoCInteropCommonizerGroups", gradleVersion) {
build(":app:commonizeCInterop") { build(":app:commonizeCInterop") {
assertTasksAreNotInTaskGraph(":lib:transformCommonMainCInteropDependenciesMetadata") assertTasksExecuted(
assertTasksExecuted(":lib:commonizeCInterop") ":lib:commonizeCInterop",
assertTasksAreNotInTaskGraph(":app:transformCommonMainCInteropDependenciesMetadata") ":app:commonizeCInterop",
assertTasksExecuted(":app:commonizeCInterop") )
assertTasksAreNotInTaskGraph(
":lib:transformCommonMainCInteropDependenciesMetadata",
":app:transformCommonMainCInteropDependenciesMetadata",
)
} }
} }
} }
@@ -261,11 +261,15 @@ class MppCompositeBuildIT : KGPBaseTest() {
build("cleanNativeDistributionCommonization") build("cleanNativeDistributionCommonization")
build(":consumerA:transformNativeMainCInteropDependenciesMetadataForIde") { build(":consumerA:transformNativeMainCInteropDependenciesMetadataForIde") {
if (HostManager.hostIsMac) { if (HostManager.hostIsMac) {
assertTasksSkipped(":producerBuild:producerA:iosArm64MetadataJar") assertTasksSkipped(
assertTasksSkipped(":producerBuild:producerA:iosX64MetadataJar") ":producerBuild:producerA:iosArm64MetadataJar",
":producerBuild:producerA:iosX64MetadataJar",
)
} else { } else {
assertTasksAreNotInTaskGraph(":producerBuild:producerA:iosArm64MetadataJar") assertTasksAreNotInTaskGraph(
assertTasksAreNotInTaskGraph(":producerBuild:producerA:iosX64MetadataJar") ":producerBuild:producerA:iosArm64MetadataJar",
":producerBuild:producerA:iosX64MetadataJar",
)
} }
assertTasksExecuted(":consumerA:transformNativeMainCInteropDependenciesMetadataForIde") assertTasksExecuted(":consumerA:transformNativeMainCInteropDependenciesMetadataForIde")
@@ -21,7 +21,9 @@ import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.condition.OS import org.junit.jupiter.api.condition.OS
import java.util.zip.ZipFile import java.util.zip.ZipFile
import kotlin.io.path.* import kotlin.io.path.*
import kotlin.test.* import kotlin.test.assertContains
import kotlin.test.assertEquals
import kotlin.test.assertTrue
@OsCondition(supportedOn = [OS.MAC], enabledOnCI = [OS.MAC]) @OsCondition(supportedOn = [OS.MAC], enabledOnCI = [OS.MAC])
@DisplayName("CocoaPods plugin tests") @DisplayName("CocoaPods plugin tests")
@@ -561,9 +563,11 @@ class CocoaPodsIT : KGPBaseTest() {
nativeProjectWithCocoapodsAndIosAppPodFile(cocoapodsCommonizationProjectName, gradleVersion) { nativeProjectWithCocoapodsAndIosAppPodFile(cocoapodsCommonizationProjectName, gradleVersion) {
buildWithCocoapodsWrapper(":commonize", "-Pkotlin.mpp.enableCInteropCommonization=false") { buildWithCocoapodsWrapper(":commonize", "-Pkotlin.mpp.enableCInteropCommonization=false") {
assertTasksExecuted(":commonizeNativeDistribution") assertTasksExecuted(":commonizeNativeDistribution")
assertTasksAreNotInTaskGraph(":cinteropAFNetworkingIosArm64") assertTasksAreNotInTaskGraph(
assertTasksAreNotInTaskGraph(":cinteropAFNetworkingIosX64") ":cinteropAFNetworkingIosArm64",
assertTasksAreNotInTaskGraph(":commonizeCInterop") ":cinteropAFNetworkingIosX64",
":commonizeCInterop",
)
} }
} }
} }
@@ -66,7 +66,7 @@ fun BuildResult.assertTasksExecuted(taskPaths: Collection<String>) {
* Asserts given [taskPaths] have [TaskOutcome.FAILED] execution state. * Asserts given [taskPaths] have [TaskOutcome.FAILED] execution state.
*/ */
fun BuildResult.assertTasksFailed(vararg taskPaths: String) { fun BuildResult.assertTasksFailed(vararg taskPaths: String) {
assertTasksHaveOutcome(TaskOutcome.SKIPPED, taskPaths.asList()) assertTasksHaveOutcome(TaskOutcome.FAILED, taskPaths.asList())
} }
/** /**