diff --git a/kotlin-native/backend.native/tests/interop/kt51925/kt51925_lib.kt b/compiler/testData/codegen/box/cinterop/kt51925.kt similarity index 52% rename from kotlin-native/backend.native/tests/interop/kt51925/kt51925_lib.kt rename to compiler/testData/codegen/box/cinterop/kt51925.kt index 2751bc4d06c..1ccf2c4ba8a 100644 --- a/kotlin-native/backend.native/tests/interop/kt51925/kt51925_lib.kt +++ b/compiler/testData/codegen/box/cinterop/kt51925.kt @@ -1,7 +1,22 @@ /* - * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ +// TARGET_BACKEND: NATIVE +// MODULE: cinterop +// FILE: kt51925.def +strictEnums = E +--- +enum E { + X = 1, Y = 2, Z = 42 +}; + +typedef struct { + int d; +} Struct; + +// MODULE: lib(cinterop) +// FILE: lib.kt @file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) import kt51925.* @@ -22,3 +37,13 @@ inline fun foo2(): Int { return bar2(s) } } + +// MODULE: main(lib) +// FILE: main.kt +import kotlin.test.* + +fun box(): String { + assertEquals(42u, foo1()) + assertEquals(42, foo2()) + return "OK" +} \ No newline at end of file diff --git a/kotlin-native/backend.native/tests/build.gradle b/kotlin-native/backend.native/tests/build.gradle index bd1be2c0842..b664c2d20cd 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -1023,14 +1023,6 @@ createInterop("sockets") { it.defFile 'interop/basics/sockets.def' } -createInterop("concurrentTerminate") { - it.defFile 'interop/concurrentTerminate/concurrentTerminate.def' - it.headers "$projectDir/interop/concurrentTerminate/async.h" - // TODO: Using `-Xcompile-source` does not imply dependency on that source, so the task will no re-run when the source is updated. - it.extraOpts "-Xcompile-source", "$projectDir/interop/concurrentTerminate/async.cpp" - it.extraOpts "-Xsource-compiler-option", "-std=c++17" -} - createInterop("embedStaticLibraries") { it.defFile 'interop/embedStaticLibraries/embedStaticLibraries.def' it.headers "$projectDir/interop/embedStaticLibraries/embedStaticLibraries.h" @@ -1055,10 +1047,6 @@ createInterop("embedStaticLibraries") { it.extraOpts '-staticLibrary', "2.a" } -createInterop("kt51925") { - it.defFile 'interop/kt51925/kt51925.def' -} - createInterop("kt43502") { it.defFile 'interop/kt43502/kt43502.def' it.headers "$projectDir/interop/kt43502/kt43502.h" @@ -1328,13 +1316,6 @@ standaloneTest("interop_objc_allocException") { UtilsKt.dependsOnPlatformLibs(it) } -interopTest("interop_concurrentTerminate") { - source = "interop/concurrentTerminate/main.kt" - interop = 'concurrentTerminate' - outputChecker = { str -> str.endsWith("Reporting error!\n") } - expectedExitStatus = 99 -} - interopTest("interop_embedStaticLibraries") { source = "interop/embedStaticLibraries/main.kt" interop = 'embedStaticLibraries' @@ -1349,14 +1330,6 @@ interopTest("interop_withSpaces") { } } -// TODO: This test should be run with caches on. -interopTest("interop_kt51925") { - interop = 'kt51925' - lib = 'interop/kt51925/kt51925_lib.kt' - source = 'interop/kt51925/kt51925_main.kt' - useGoldenData = true -} - interopTestBase("interop_forwardDeclarationsCast", false, true) { enabled = PlatformInfo.isAppleTarget(project) interop = 'forwardDeclarationsCastA' diff --git a/kotlin-native/backend.native/tests/interop/concurrentTerminate/async.h b/kotlin-native/backend.native/tests/interop/concurrentTerminate/async.h deleted file mode 100644 index 3eed47c4a5c..00000000000 --- a/kotlin-native/backend.native/tests/interop/concurrentTerminate/async.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -int test_ConcurrentTerminate(); - -#ifdef __cplusplus -} -#endif diff --git a/kotlin-native/backend.native/tests/interop/concurrentTerminate/concurrentTerminate.def b/kotlin-native/backend.native/tests/interop/concurrentTerminate/concurrentTerminate.def deleted file mode 100644 index 3174df6637d..00000000000 --- a/kotlin-native/backend.native/tests/interop/concurrentTerminate/concurrentTerminate.def +++ /dev/null @@ -1,5 +0,0 @@ -package async - ---- - -int test_ConcurrentTerminate(); diff --git a/kotlin-native/backend.native/tests/interop/concurrentTerminate/main.kt b/kotlin-native/backend.native/tests/interop/concurrentTerminate/main.kt deleted file mode 100644 index d9bbd63bcdd..00000000000 --- a/kotlin-native/backend.native/tests/interop/concurrentTerminate/main.kt +++ /dev/null @@ -1,7 +0,0 @@ -import async.* -import kotlinx.cinterop.* - -fun main() { - test_ConcurrentTerminate() - println("This is not expected.") -} \ No newline at end of file diff --git a/kotlin-native/backend.native/tests/interop/kt51925/kt51925.def b/kotlin-native/backend.native/tests/interop/kt51925/kt51925.def deleted file mode 100644 index b46afe2b15b..00000000000 --- a/kotlin-native/backend.native/tests/interop/kt51925/kt51925.def +++ /dev/null @@ -1,9 +0,0 @@ -strictEnums = E ---- -enum E { - X = 1, Y = 2, Z = 42 -}; - -typedef struct { - int d; -} Struct; \ No newline at end of file diff --git a/kotlin-native/backend.native/tests/interop/kt51925/kt51925_main.kt b/kotlin-native/backend.native/tests/interop/kt51925/kt51925_main.kt deleted file mode 100644 index 52540d8c2f5..00000000000 --- a/kotlin-native/backend.native/tests/interop/kt51925/kt51925_main.kt +++ /dev/null @@ -1,9 +0,0 @@ -/* - * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -fun main() { - println(foo1()) - println(foo2()) -} \ No newline at end of file diff --git a/kotlin-native/backend.native/tests/interop/kt51925/kt51925_main.out b/kotlin-native/backend.native/tests/interop/kt51925/kt51925_main.out deleted file mode 100644 index daaac9e3030..00000000000 --- a/kotlin-native/backend.native/tests/interop/kt51925/kt51925_main.out +++ /dev/null @@ -1,2 +0,0 @@ -42 -42 diff --git a/kotlin-native/backend.native/tests/interop/concurrentTerminate/async.cpp b/native/native.tests/testData/standalone/termination/concurrentTerminate.kt similarity index 60% rename from kotlin-native/backend.native/tests/interop/concurrentTerminate/async.cpp rename to native/native.tests/testData/standalone/termination/concurrentTerminate.kt index b7c2251f4f3..a84c03b51dd 100644 --- a/kotlin-native/backend.native/tests/interop/concurrentTerminate/async.cpp +++ b/native/native.tests/testData/standalone/termination/concurrentTerminate.kt @@ -1,3 +1,25 @@ +// TARGET_BACKEND: NATIVE +// EXIT_CODE: 99 +// OUTPUT_REGEX: .*Reporting error![\r\n]+ + +// MODULE: cinterop +// FILE: concurrentTerminate.def +package async +--- +int test_ConcurrentTerminate(); + +// FILE: async.h +#ifdef __cplusplus +extern "C" { +#endif + +int test_ConcurrentTerminate(); + +#ifdef __cplusplus +} +#endif + +// FILE: async.cpp #include #include #include @@ -27,3 +49,15 @@ int test_ConcurrentTerminate() { for (auto &future : futures) future.get(); return 0; } + + +// MODULE: main(cinterop) +// FILE: main.kt +@file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) +import async.* +import kotlinx.cinterop.* + +fun main() { + test_ConcurrentTerminate() + println("This is not expected.") +} \ No newline at end of file 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 0f8f394cbb8..8413712259d 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 @@ -4832,6 +4832,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe runTest("compiler/testData/codegen/box/cinterop/kt44283.kt"); } + @Test + @TestMetadata("kt51925.kt") + public void testKt51925() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/kt51925.kt"); + } + @Test @TestMetadata("kt54284.kt") public void testKt54284() 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 a99d74c259e..682bd69f64c 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 @@ -4942,6 +4942,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB runTest("compiler/testData/codegen/box/cinterop/kt44283.kt"); } + @Test + @TestMetadata("kt51925.kt") + public void testKt51925() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/kt51925.kt"); + } + @Test @TestMetadata("kt54284.kt") public void testKt54284() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeStandaloneTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeStandaloneTestGenerated.java index 8d1b42a896e..31baaff86d7 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeStandaloneTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeStandaloneTestGenerated.java @@ -174,6 +174,12 @@ public class FirNativeStandaloneTestGenerated extends AbstractNativeBlackBoxTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("native/native.tests/testData/standalone/termination"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("concurrentTerminate.kt") + public void testConcurrentTerminate() throws Exception { + runTest("native/native.tests/testData/standalone/termination/concurrentTerminate.kt"); + } + @Test @TestMetadata("exitProcess.kt") public void testExitProcess() 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 43bc1f5ac27..7068548ede7 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 @@ -4722,6 +4722,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/cinterop/kt44283.kt"); } + @Test + @TestMetadata("kt51925.kt") + public void testKt51925() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/kt51925.kt"); + } + @Test @TestMetadata("kt54284.kt") public void testKt54284() 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 ce030f30245..720122b00fc 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 @@ -4833,6 +4833,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT runTest("compiler/testData/codegen/box/cinterop/kt44283.kt"); } + @Test + @TestMetadata("kt51925.kt") + public void testKt51925() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/kt51925.kt"); + } + @Test @TestMetadata("kt54284.kt") public void testKt54284() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeStandaloneTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeStandaloneTestGenerated.java index eebac7bfd7e..2923314d0db 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeStandaloneTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeStandaloneTestGenerated.java @@ -165,6 +165,12 @@ public class NativeStandaloneTestGenerated extends AbstractNativeBlackBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("native/native.tests/testData/standalone/termination"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("concurrentTerminate.kt") + public void testConcurrentTerminate() throws Exception { + runTest("native/native.tests/testData/standalone/termination/concurrentTerminate.kt"); + } + @Test @TestMetadata("exitProcess.kt") public void testExitProcess() throws Exception {