diff --git a/kotlin-native/backend.native/tests/interop/forwardDeclarationsTwoLibs/forwardDeclarationsTwoLibs.kt b/compiler/testData/codegen/box/cinterop/forwardDeclarationsTwoLibs.kt similarity index 72% rename from kotlin-native/backend.native/tests/interop/forwardDeclarationsTwoLibs/forwardDeclarationsTwoLibs.kt rename to compiler/testData/codegen/box/cinterop/forwardDeclarationsTwoLibs.kt index 24ba5123abd..e604dda501c 100644 --- a/kotlin-native/backend.native/tests/interop/forwardDeclarationsTwoLibs/forwardDeclarationsTwoLibs.kt +++ b/compiler/testData/codegen/box/cinterop/forwardDeclarationsTwoLibs.kt @@ -1,4 +1,41 @@ // This test mostly checks frontend behaviour. +// TARGET_BACKEND: NATIVE +// MODULE: cinterop1 +// FILE: cForwardDeclarationsTwoLibs1.def +--- +struct StructDeclaredUndeclared; +struct StructDeclaredDeclared; +struct StructDeclaredDefined; +struct StructDefinedUndeclared {}; +struct StructDefinedDeclared {}; +struct StructDefinedDefined {}; + +int use1StructDeclaredUndeclared(struct StructDeclaredUndeclared* declaredUndeclared) { return -3; } +int use1StructDeclaredDeclared(struct StructDeclaredDeclared* declaredDeclared) { return -4; } +int use1StructDeclaredDefined(struct StructDeclaredDefined* declaredDefined) { return -5; } +int use1StructDefinedUndeclared(struct StructDefinedUndeclared* definedUndeclared) { return -6; } +int use1StructDefinedDeclared(struct StructDefinedDeclared* definedDeclared) { return -7; } +int use1StructDefinedDefined(struct StructDefinedDefined* definedDefined) { return -8; } + +// MODULE: cinterop2 +// FILE: cForwardDeclarationsTwoLibs2.def +--- +struct StructUndeclaredDeclared; +struct StructUndeclaredDefined {}; +struct StructDeclaredDeclared; +struct StructDeclaredDefined {}; +struct StructDefinedDeclared; +struct StructDefinedDefined {}; + +int use2StructUndeclaredDeclared(struct StructUndeclaredDeclared* undeclaredDeclared) { return 1; } +int use2StructUndeclaredDefined(struct StructUndeclaredDefined* undeclaredDefined) { return 2; } +int use2StructDeclaredDeclared(struct StructDeclaredDeclared* declaredDeclared) { return 4; } +int use2StructDeclaredDefined(struct StructDeclaredDefined* declaredDefined) { return 5; } +int use2StructDefinedDeclared(struct StructDefinedDeclared* definedDeclared) { return 7; } +int use2StructDefinedDefined(struct StructDefinedDefined* definedDefined) { return 8; } + +// MODULE: main(cinterop1, cinterop2) +// FILE: main.kt @file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) import cForwardDeclarationsTwoLibs1.* @@ -34,7 +71,7 @@ fun checkDifferentTypes(s: StructDefinedDeclared?) = 7 fun checkDifferentTypes(s: cForwardDeclarationsTwoLibs1.StructDefinedDefined?) = 8 fun checkDifferentTypes(s: cForwardDeclarationsTwoLibs2.StructDefinedDefined?) = 9 -fun main() { +fun box(): String { checkSubtype2() checkSubtype2() @@ -88,4 +125,6 @@ fun main() { assertEquals(7, use2StructDefinedDeclared(cnamesDefinedDeclared?.ptr)) assertEquals(-8, use1StructDefinedDefined(definedDefined1?.ptr)) assertEquals(8, use2StructDefinedDefined(definedDefined2?.ptr)) + + return "OK" } diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index 1c83a98f0ec..3922ad8edbd 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -1087,25 +1087,12 @@ createInterop("cppSkiaSignature") { it.defFile 'interop/cpp/skiaSignature.def' } -createInterop("threadStates") { - it.defFile "interop/threadStates/threadStates.def" - it.extraOpts "-Xcompile-source", "$projectDir/interop/threadStates/threadStates.cpp" -} - createInterop("workerSignals") { it.defFile "interop/workerSignals/workerSignals.def" it.headers "$projectDir/interop/workerSignals/workerSignals.h" it.extraOpts "-Xcompile-source", "$projectDir/interop/workerSignals/workerSignals.cpp" } -createInterop("cForwardDeclarationsTwoLibs1") { - it.defFile "interop/forwardDeclarationsTwoLibs/cForwardDeclarationsTwoLibs1.def" -} - -createInterop("cForwardDeclarationsTwoLibs2") { - it.defFile "interop/forwardDeclarationsTwoLibs/cForwardDeclarationsTwoLibs2.def" -} - if (PlatformInfo.isAppleTarget(project)) { createInterop("forwardDeclarationsCastA") { it.defFile "interop/forwardDeclarationsCast/a.def" @@ -1344,12 +1331,6 @@ interopTest("interop_workerSignals") { interop = "workerSignals" } -interopTest("interop_forwardDeclarationsTwoLibs") { - source = "interop/forwardDeclarationsTwoLibs/forwardDeclarationsTwoLibs.kt" - interop = "cForwardDeclarationsTwoLibs1" - interop2 = "cForwardDeclarationsTwoLibs2" -} - /* TODO: This test isn't run automatically tasks.register("interop_echo_server", RunInteropKonanTest) { diff --git a/kotlin-native/backend.native/tests/interop/forwardDeclarationsTwoLibs/cForwardDeclarationsTwoLibs1.def b/kotlin-native/backend.native/tests/interop/forwardDeclarationsTwoLibs/cForwardDeclarationsTwoLibs1.def deleted file mode 100644 index 86d41063e18..00000000000 --- a/kotlin-native/backend.native/tests/interop/forwardDeclarationsTwoLibs/cForwardDeclarationsTwoLibs1.def +++ /dev/null @@ -1,14 +0,0 @@ ---- -struct StructDeclaredUndeclared; -struct StructDeclaredDeclared; -struct StructDeclaredDefined; -struct StructDefinedUndeclared {}; -struct StructDefinedDeclared {}; -struct StructDefinedDefined {}; - -int use1StructDeclaredUndeclared(struct StructDeclaredUndeclared* declaredUndeclared) { return -3; } -int use1StructDeclaredDeclared(struct StructDeclaredDeclared* declaredDeclared) { return -4; } -int use1StructDeclaredDefined(struct StructDeclaredDefined* declaredDefined) { return -5; } -int use1StructDefinedUndeclared(struct StructDefinedUndeclared* definedUndeclared) { return -6; } -int use1StructDefinedDeclared(struct StructDefinedDeclared* definedDeclared) { return -7; } -int use1StructDefinedDefined(struct StructDefinedDefined* definedDefined) { return -8; } diff --git a/kotlin-native/backend.native/tests/interop/forwardDeclarationsTwoLibs/cForwardDeclarationsTwoLibs2.def b/kotlin-native/backend.native/tests/interop/forwardDeclarationsTwoLibs/cForwardDeclarationsTwoLibs2.def deleted file mode 100644 index a4397fd9000..00000000000 --- a/kotlin-native/backend.native/tests/interop/forwardDeclarationsTwoLibs/cForwardDeclarationsTwoLibs2.def +++ /dev/null @@ -1,14 +0,0 @@ ---- -struct StructUndeclaredDeclared; -struct StructUndeclaredDefined {}; -struct StructDeclaredDeclared; -struct StructDeclaredDefined {}; -struct StructDefinedDeclared; -struct StructDefinedDefined {}; - -int use2StructUndeclaredDeclared(struct StructUndeclaredDeclared* undeclaredDeclared) { return 1; } -int use2StructUndeclaredDefined(struct StructUndeclaredDefined* undeclaredDefined) { return 2; } -int use2StructDeclaredDeclared(struct StructDeclaredDeclared* declaredDeclared) { return 4; } -int use2StructDeclaredDefined(struct StructDeclaredDefined* declaredDefined) { return 5; } -int use2StructDefinedDeclared(struct StructDefinedDeclared* definedDeclared) { return 7; } -int use2StructDefinedDefined(struct StructDefinedDefined* definedDefined) { return 8; } diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java index 97d231c6e97..54ac5505320 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java @@ -4802,6 +4802,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe runTest("compiler/testData/codegen/box/cinterop/forwardDeclarations.kt"); } + @Test + @TestMetadata("forwardDeclarationsTwoLibs.kt") + public void testForwardDeclarationsTwoLibs() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/forwardDeclarationsTwoLibs.kt"); + } + @Test @TestMetadata("funptr.kt") public void testFunptr() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java index 75cf300acd9..6aab98ef5e2 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java @@ -4912,6 +4912,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB runTest("compiler/testData/codegen/box/cinterop/forwardDeclarations.kt"); } + @Test + @TestMetadata("forwardDeclarationsTwoLibs.kt") + public void testForwardDeclarationsTwoLibs() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/forwardDeclarationsTwoLibs.kt"); + } + @Test @TestMetadata("funptr.kt") public void testFunptr() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java index 30a7487aa01..6c5ac5a42eb 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java @@ -4692,6 +4692,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/cinterop/forwardDeclarations.kt"); } + @Test + @TestMetadata("forwardDeclarationsTwoLibs.kt") + public void testForwardDeclarationsTwoLibs() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/forwardDeclarationsTwoLibs.kt"); + } + @Test @TestMetadata("funptr.kt") public void testFunptr() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java index a5a7c985ada..82b5e42136d 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java @@ -4803,6 +4803,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT runTest("compiler/testData/codegen/box/cinterop/forwardDeclarations.kt"); } + @Test + @TestMetadata("forwardDeclarationsTwoLibs.kt") + public void testForwardDeclarationsTwoLibs() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/forwardDeclarationsTwoLibs.kt"); + } + @Test @TestMetadata("funptr.kt") public void testFunptr() throws Exception {