[Gradle] Add test checking crossCompilationSupported

^KT-77258
diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/CrossCompilationWithCinteropTests.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/CrossCompilationWithCinteropTests.kt
index 14e0ce7..9514d8b 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/CrossCompilationWithCinteropTests.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/CrossCompilationWithCinteropTests.kt
@@ -11,7 +11,11 @@
 import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
 import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.PropertyNames.KOTLIN_NATIVE_ENABLE_KLIBS_CROSSCOMPILATION
 import org.jetbrains.kotlin.gradle.plugin.diagnostics.KotlinToolingDiagnostics
+import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation
 import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
+import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType
+import org.jetbrains.kotlin.gradle.plugin.tcs
+import org.jetbrains.kotlin.gradle.tasks.CInteropProcess
 import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile
 import org.jetbrains.kotlin.gradle.util.*
 import org.jetbrains.kotlin.konan.target.HostManager
@@ -26,9 +30,9 @@
     fun `cross compilation with cinterops`() {
         val project = buildProjectWithMPP {
             kotlin {
-                macosX64()
-                linuxX64()
-                mingwX64()
+                listOf(macosX64(), linuxX64(), mingwX64()).forEach { target ->
+                    target.binaries.executable(listOf(NativeBuildType.DEBUG))
+                }
 
                 addDummyCinterop { it.konanTarget == KonanTarget.MACOS_X64 }
                 addDummyCinterop { it.konanTarget == KonanTarget.LINUX_X64 }
@@ -36,13 +40,13 @@
             }
         }.evaluate()
 
-        val compileKotlinMacosX64 = project.tasks.findByName("compileKotlinMacosX64") as? KotlinNativeCompile
-        val compileKotlinMingwX64 = project.tasks.findByName("compileKotlinMingwX64") as? KotlinNativeCompile
-        val compileKotlinLinuxX64 = project.tasks.findByName("compileKotlinLinuxX64") as? KotlinNativeCompile
+        val compileKotlinMacosX64 = project.tasks.findByName("compileKotlinMacosX64") as KotlinNativeCompile?
+        val compileKotlinMingwX64 = project.tasks.findByName("compileKotlinMingwX64") as KotlinNativeCompile?
+        val compileKotlinLinuxX64 = project.tasks.findByName("compileKotlinLinuxX64") as KotlinNativeCompile?
 
-        val cinteropDummyMacosX64 = project.tasks.findByName("cinteropDummyMacosX64")
-        val cinteropDummyLinuxX64 = project.tasks.findByName("cinteropDummyLinuxX64")
-        val cinteropDummyMingwX64 = project.tasks.findByName("cinteropDummyMingwX64")
+        val cinteropDummyMacosX64 = project.tasks.findByName("cinteropDummyMacosX64") as CInteropProcess?
+        val cinteropDummyLinuxX64 = project.tasks.findByName("cinteropDummyLinuxX64") as CInteropProcess?
+        val cinteropDummyMingwX64 = project.tasks.findByName("cinteropDummyMingwX64") as CInteropProcess?
 
         assertNotNull(compileKotlinMingwX64, "compileKotlinMingwX64 task should be present")
         assertNotNull(compileKotlinLinuxX64, "compileKotlinLinuxX64 task should be present")
@@ -52,11 +56,26 @@
         assertNotNull(cinteropDummyLinuxX64, "cinteropDummyLinuxX64 task should be present")
         assertNotNull(cinteropDummyMacosX64, "cinteropDummyMacosX64 task should be present")
 
+        val linuxX64Compilation = compileKotlinLinuxX64.compilation.tcs.compilation as KotlinNativeCompilation
+        val mingwX64Compilation = compileKotlinMingwX64.compilation.tcs.compilation as KotlinNativeCompilation
+        val macosX64Compilation = compileKotlinMacosX64.compilation.tcs.compilation as KotlinNativeCompilation
+
+        assert(linuxX64Compilation.crossCompilationSupported.get()) {
+            "LinuxX64 compilation should support cross-compilation"
+        }
+
+        assert(mingwX64Compilation.crossCompilationSupported.get()) {
+            "MingwX64 compilation should support cross-compilation"
+        }
+
         if (HostManager.hostIsMac) {
             project.assertNoDiagnostics(KotlinToolingDiagnostics.CrossCompilationWithCinterops)
             assert(cinteropDummyMacosX64.enabled) {
                 "cinteropDummyMacosX64 task should be enabled on macOS"
             }
+            assert(macosX64Compilation.crossCompilationSupported.get()) {
+                "MacosX64 compilation should support cross-compilation on macOS"
+            }
             assertEquals(
                 true,
                 compileKotlinMacosX64.onlyIf.isSatisfiedBy(compileKotlinMacosX64),
@@ -67,6 +86,9 @@
             assert(!cinteropDummyMacosX64.enabled) {
                 "cinteropDummyMacosX64 task should be disabled on non-macOS"
             }
+            assert(!macosX64Compilation.crossCompilationSupported.get()) {
+                "MacosX64 compilation should not support cross-compilation on non-macOS"
+            }
             assertEquals(
                 false,
                 compileKotlinMacosX64.onlyIf.isSatisfiedBy(compileKotlinMacosX64),