diff --git a/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/main.kt b/compiler/testData/codegen/box/cinterop/objc/overridabilityCondition.kt similarity index 68% rename from kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/main.kt rename to compiler/testData/codegen/box/cinterop/objc/overridabilityCondition.kt index 6edb7723b4b..68a289d39ed 100644 --- a/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/main.kt +++ b/compiler/testData/codegen/box/cinterop/objc/overridabilityCondition.kt @@ -1,3 +1,45 @@ +// TARGET_BACKEND: NATIVE +// DISABLE_NATIVE: isAppleTarget=false + +// MODULE: cinterop +// FILE: lib.def +language = Objective-C +headers = lib.h +headerFilter = lib.h + +// FILE: lib.h +#import +#import +#import + +@interface ObjCClass : NSObject +- (NSString*)fooWithArg:(int)arg arg2:(NSString*)arg2; +- (NSString*)fooWithArg:(int)ohNoOtherName name2:(NSString*)name2; +- (NSString*)fooWithArg:(int)arg name3:(NSString*)name3; +@end + +// FILE: lib.m +#import "lib.h" + +@implementation ObjCClass { +} + +- (NSString*)fooWithArg:(int)arg arg2:(NSString*)arg2 { + return @"A"; +} + +- (NSString*)fooWithArg:(int)ohNoOtherName name2:(NSString*)name2 { + return @"B"; +} + +- (NSString*)fooWithArg:(int)arg name3:(NSString*)name3 { + return @"C"; +} + +@end + +// MODULE: main(cinterop) +// FILE: main.kt @file:OptIn(kotlinx.cinterop.ExperimentalForeignApi::class) import lib.ObjCClass @@ -32,7 +74,7 @@ fun test(x: ObjCClass, expected: String) { if (res != expected) throw IllegalStateException("Fail ${x::class}: ${res} instead of $expected") } -fun main() { +fun box(): String { test(ObjCClass(), "ABC") test(OverrideAll(), "DEF") test(OverrideNone(), "ABC") @@ -51,4 +93,6 @@ fun main() { x2.fooWithArg(ohNoOtherName = 0, name2="") + x2.fooWithArg(arg = 0, name3 = "") if (res2 != "ABC") throw IllegalStateException("Fail OverrideNone non-virtual: ${res2} instead of ABC") + + 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 617a9793488..9c6346ccf51 100644 --- a/kotlin-native/backend.native/tests/build.gradle +++ b/kotlin-native/backend.native/tests/build.gradle @@ -1210,11 +1210,6 @@ if (PlatformInfo.isAppleTarget(project)) { it.defFile 'interop/objc/objCAction/objclib.def' it.headers "$projectDir/interop/objc/objCAction/objclib.h" } - createInterop("overridabilityCondition") { - it.defFile 'interop/objc/overridabilityCondition/lib.def' - it.headers "$projectDir/interop/objc/overridabilityCondition/lib.h" - it.extraOpts "-Xcompile-source", "$projectDir/interop/objc/overridabilityCondition/lib.m" - } createInterop("kt63423_dispose_on_main_stress") { it.defFile 'interop/objc/kt63423_dispose_on_main_stress/objclib.def' it.headers "$projectDir/interop/objc/kt63423_dispose_on_main_stress/objclib.h" @@ -1549,12 +1544,6 @@ if (PlatformInfo.isAppleTarget(project)) { interop = "objcDirect" } - interopTest("interop_objc_overridabilityCondition") { - interop = "overridabilityCondition" - source = "interop/objc/overridabilityCondition/main.kt" - flags = [ "-Xuse-ir-fake-override-builder" ] - } - interopTest("interop_objc_foreignException") { source = "interop/objc/foreignException/objc_wrap.kt" interop = 'foreignException' diff --git a/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/lib.def b/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/lib.def deleted file mode 100644 index e5459088575..00000000000 --- a/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/lib.def +++ /dev/null @@ -1,2 +0,0 @@ -language = Objective-C -headersFilter = **/lib.h \ No newline at end of file diff --git a/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/lib.h b/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/lib.h deleted file mode 100644 index 357e3f52ac1..00000000000 --- a/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/lib.h +++ /dev/null @@ -1,10 +0,0 @@ -#import -#import -#import - -@interface ObjCClass : NSObject -- (NSString*)fooWithArg:(int)arg arg2:(NSString*)arg2; -- (NSString*)fooWithArg:(int)ohNoOtherName name2:(NSString*)name2; -- (NSString*)fooWithArg:(int)arg name3:(NSString*)name3; -@end - diff --git a/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/lib.m b/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/lib.m deleted file mode 100644 index 53bd80a924a..00000000000 --- a/kotlin-native/backend.native/tests/interop/objc/overridabilityCondition/lib.m +++ /dev/null @@ -1,18 +0,0 @@ -#import "lib.h" - -@implementation ObjCClass { -} - -- (NSString*)fooWithArg:(int)arg arg2:(NSString*)arg2 { - return @"A"; -} - -- (NSString*)fooWithArg:(int)ohNoOtherName name2:(NSString*)name2 { - return @"B"; -} - -- (NSString*)fooWithArg:(int)arg name3:(NSString*)name3 { - return @"C"; -} - -@end \ 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 286176c3a4d..4ef5f3591d7 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 @@ -5097,6 +5097,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe public void testKt53151() throws Exception { runTest("compiler/testData/codegen/box/cinterop/objc/kt53151.kt"); } + + @Test + @TestMetadata("overridabilityCondition.kt") + public void testOverridabilityCondition() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/objc/overridabilityCondition.kt"); + } } @Nested 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 4920a63c343..94ece8f7baf 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 @@ -5213,6 +5213,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB public void testKt53151() throws Exception { runTest("compiler/testData/codegen/box/cinterop/objc/kt53151.kt"); } + + @Test + @TestMetadata("overridabilityCondition.kt") + public void testOverridabilityCondition() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/objc/overridabilityCondition.kt"); + } } @Nested 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 ea4a77afe51..26b105fd5b2 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 @@ -4981,6 +4981,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest public void testKt53151() throws Exception { runTest("compiler/testData/codegen/box/cinterop/objc/kt53151.kt"); } + + @Test + @TestMetadata("overridabilityCondition.kt") + public void testOverridabilityCondition() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/objc/overridabilityCondition.kt"); + } } @Nested 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 e3e0867c504..4c1ae4de255 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 @@ -5098,6 +5098,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT public void testKt53151() throws Exception { runTest("compiler/testData/codegen/box/cinterop/objc/kt53151.kt"); } + + @Test + @TestMetadata("overridabilityCondition.kt") + public void testOverridabilityCondition() throws Exception { + runTest("compiler/testData/codegen/box/cinterop/objc/overridabilityCondition.kt"); + } } @Nested