!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.io.TempDir
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.fail
@@ -124,8 +125,10 @@ open class CommonizerIT : KGPBaseTest() {
}
build(":commonize") {
assertNativeDistributionCommonizationCacheHit()
assertTasksAreNotInTaskGraph(":cinteropCurlTargetA")
assertTasksAreNotInTaskGraph(":cinteropCurlTargetB")
assertTasksAreNotInTaskGraph(
":cinteropCurlTargetA",
":cinteropCurlTargetB",
)
}
}
}
@@ -144,9 +147,11 @@ open class CommonizerIT : KGPBaseTest() {
build(":commonize") {
assertTasksExecuted(":commonizeNativeDistribution")
assertTasksAreNotInTaskGraph(":cinteropCurlTargetA")
assertTasksAreNotInTaskGraph(":cinteropCurlTargetB")
assertTasksAreNotInTaskGraph(":commonizeCInterop")
assertTasksAreNotInTaskGraph(
":cinteropCurlTargetA",
":cinteropCurlTargetB",
":commonizeCInterop",
)
}
build(":commonize", "-Pkotlin.mpp.enableCInteropCommonization=true") {
@@ -158,14 +163,15 @@ open class CommonizerIT : KGPBaseTest() {
build(":commonize", "-Pkotlin.mpp.enableCInteropCommonization=false") {
assertNativeDistributionCommonizationCacheHit()
assertTasksAreNotInTaskGraph(":cinteropCurlTargetA")
assertTasksAreNotInTaskGraph(":cinteropCurlTargetB")
assertTasksAreNotInTaskGraph(":commonizeCInterop")
assertTasksAreNotInTaskGraph(
":cinteropCurlTargetA",
":cinteropCurlTargetB",
":commonizeCInterop",
)
}
}
}
@DisplayName("Commonize Curl Interop copy CommonizeCInterop for Ide")
@GradleTest
fun testCommonizeCurlInteropcopyCommonizeCInteropForIde(
@@ -514,10 +520,14 @@ open class CommonizerIT : KGPBaseTest() {
fun testCommonizationWithTwoCInteropCommonizerGroups(gradleVersion: GradleVersion) {
nativeProject("commonize-kt-57796-twoCInteropCommonizerGroups", gradleVersion) {
build(":app:commonizeCInterop") {
assertTasksAreNotInTaskGraph(":lib:transformCommonMainCInteropDependenciesMetadata")
assertTasksExecuted(":lib:commonizeCInterop")
assertTasksAreNotInTaskGraph(":app:transformCommonMainCInteropDependenciesMetadata")
assertTasksExecuted(":app:commonizeCInterop")
assertTasksExecuted(
":lib:commonizeCInterop",
":app:commonizeCInterop",
)
assertTasksAreNotInTaskGraph(
":lib:transformCommonMainCInteropDependenciesMetadata",
":app:transformCommonMainCInteropDependenciesMetadata",
)
}
}
}
@@ -261,11 +261,15 @@ class MppCompositeBuildIT : KGPBaseTest() {
build("cleanNativeDistributionCommonization")
build(":consumerA:transformNativeMainCInteropDependenciesMetadataForIde") {
if (HostManager.hostIsMac) {
assertTasksSkipped(":producerBuild:producerA:iosArm64MetadataJar")
assertTasksSkipped(":producerBuild:producerA:iosX64MetadataJar")
assertTasksSkipped(
":producerBuild:producerA:iosArm64MetadataJar",
":producerBuild:producerA:iosX64MetadataJar",
)
} else {
assertTasksAreNotInTaskGraph(":producerBuild:producerA:iosArm64MetadataJar")
assertTasksAreNotInTaskGraph(":producerBuild:producerA:iosX64MetadataJar")
assertTasksAreNotInTaskGraph(
":producerBuild:producerA:iosArm64MetadataJar",
":producerBuild:producerA:iosX64MetadataJar",
)
}
assertTasksExecuted(":consumerA:transformNativeMainCInteropDependenciesMetadataForIde")
@@ -21,7 +21,9 @@ import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.condition.OS
import java.util.zip.ZipFile
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])
@DisplayName("CocoaPods plugin tests")
@@ -561,9 +563,11 @@ class CocoaPodsIT : KGPBaseTest() {
nativeProjectWithCocoapodsAndIosAppPodFile(cocoapodsCommonizationProjectName, gradleVersion) {
buildWithCocoapodsWrapper(":commonize", "-Pkotlin.mpp.enableCInteropCommonization=false") {
assertTasksExecuted(":commonizeNativeDistribution")
assertTasksAreNotInTaskGraph(":cinteropAFNetworkingIosArm64")
assertTasksAreNotInTaskGraph(":cinteropAFNetworkingIosX64")
assertTasksAreNotInTaskGraph(":commonizeCInterop")
assertTasksAreNotInTaskGraph(
":cinteropAFNetworkingIosArm64",
":cinteropAFNetworkingIosX64",
":commonizeCInterop",
)
}
}
}
@@ -66,7 +66,7 @@ fun BuildResult.assertTasksExecuted(taskPaths: Collection<String>) {
* Asserts given [taskPaths] have [TaskOutcome.FAILED] execution state.
*/
fun BuildResult.assertTasksFailed(vararg taskPaths: String) {
assertTasksHaveOutcome(TaskOutcome.SKIPPED, taskPaths.asList())
assertTasksHaveOutcome(TaskOutcome.FAILED, taskPaths.asList())
}
/**