From d73f8ea44e2de59a7eceeb7edde3650cdea972df Mon Sep 17 00:00:00 2001 From: Pavel Punegov Date: Mon, 22 Nov 2021 16:52:29 +0300 Subject: [PATCH] [Native][Test] Fix platformLibs dependencies Sanity tests should not run tests that depend on platform libs. Also fix platform libs dependency setting --- kotlin-native/backend.native/tests/build.gradle | 13 ++++++++++--- .../src/main/kotlin/org/jetbrains/kotlin/Utils.kt | 12 ++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index aa321f2c1b1..61db25c9eda 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -154,10 +154,10 @@ konanArtifacts { library('testLibrary') { srcDir 'testLibrary' } - def target = project.testTarget ?: 'host' library('baseTestClass', targets: [target]) { srcFiles 'testing/library.kt' } + UtilsKt.dependsOnDist(UtilsKt.findKonanBuildTask(project, "testLibrary", target)) } configure(project.tasks.findByName("compileKonanBaseTestClass${UtilsKt.getTestTargetSuffix(project)}")) { UtilsKt.dependsOnDist(it) @@ -207,8 +207,15 @@ run { } task sanity { - dependsOn(tasksOf(KonanTest)) - dependsOn(tasksOf(FrameworkTest)) + def platformLibsTasks =":distPlatformLibs" + ":kotlin-native:platformLibs" + dependsOn(tasksOf(KonanTest) { task -> + !UtilsKt.isDependsOnPlatformLibs(task) && + task.name != "library_mismatch" // This test requires the wasm32 stdlib which is unavailable during a sanity run. + }) + // Add framework tests + dependsOn(tasksOf(FrameworkTest) { task -> + !UtilsKt.isDependsOnPlatformLibs(task) + }) dependsOn(tasksOf(MetadataComparisonTest)) // Add regular gradle test tasks dependsOn(tasksOf(Test)) diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt index 95636a43dcd..65049057d24 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt @@ -121,6 +121,11 @@ fun Task.dependsOnPlatformLibs() { this.dependsOn(":kotlin-native:platformLibs:${project.testTarget.name}-$it") //this.dependsOn(":kotlin-native:platformLibs:${project.testTarget.name}-${it}Cache") } + if (this is KonanLinkTest) { + project.file(lib).dependencies().forEach { + this.dependsOn(":kotlin-native:platformLibs:${project.testTarget.name}-$it") + } + } } ?: error("unsupported task : $this") } @@ -209,6 +214,13 @@ fun TaskProvider.dependsOnDist() { } } +fun Task.isDependsOnPlatformLibs(): Boolean { + return dependsOn.any { + it.toString().contains(":kotlin-native:platformLibs") || + it.toString().contains(":kotlin-native:distPlatformLibs") + } +} + fun Task.dependsOnDist() { dependsOn(":kotlin-native:dist") val target = project.testTarget