[K/N] Make a reproducer test for KT-55938
^KT-55938
This commit is contained in:
committed by
Pavel Kunyavskiy
parent
e5417e8381
commit
fbc39fcab1
@@ -4443,6 +4443,10 @@ if (PlatformInfo.isAppleTarget(project)) {
|
|||||||
it.defFile 'interop/objc/kt53151/objclib.def'
|
it.defFile 'interop/objc/kt53151/objclib.def'
|
||||||
it.compilerOpts "-F$projectDir/interop/objc/kt53151/testFramework"
|
it.compilerOpts "-F$projectDir/interop/objc/kt53151/testFramework"
|
||||||
}
|
}
|
||||||
|
createInterop("objc_kt55938") {
|
||||||
|
it.defFile 'interop/objc/kt55938/objclib.def'
|
||||||
|
it.headers "$projectDir/interop/objc/kt55938/objclib.h"
|
||||||
|
}
|
||||||
|
|
||||||
createInterop("kt49034_struct") {
|
createInterop("kt49034_struct") {
|
||||||
it.defFile 'interop/objc/kt49034/struct/kt49034.def'
|
it.defFile 'interop/objc/kt49034/struct/kt49034.def'
|
||||||
@@ -5166,6 +5170,7 @@ if (PlatformInfo.isAppleTarget(project)) {
|
|||||||
UtilsKt.codesign(project, "$buildDir/libobjc_kt42172.dylib")
|
UtilsKt.codesign(project, "$buildDir/libobjc_kt42172.dylib")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interopTest("interop_objc_kt48816_without_lazy_ir_for_caches") {
|
interopTest("interop_objc_kt48816_without_lazy_ir_for_caches") {
|
||||||
@@ -5197,6 +5202,34 @@ if (PlatformInfo.isAppleTarget(project)) {
|
|||||||
interop = "objc_kt53151"
|
interop = "objc_kt53151"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interopTest("interop_objc_kt55938") {
|
||||||
|
source = "interop/objc/kt55938/main.kt"
|
||||||
|
lib = "interop/objc/kt55938/lib.kt"
|
||||||
|
interop = "objc_kt55938"
|
||||||
|
useGoldenData = true
|
||||||
|
enabled = cacheTesting != null
|
||||||
|
flags = [
|
||||||
|
"-Xauto-cache-from=$testOutputRoot/local/objc_kt55938",
|
||||||
|
"-Xauto-cache-from=$testOutputRoot/local/interop_objc_kt55938",
|
||||||
|
"-Xauto-cache-dir=$testOutputRoot/local/interop_objc_kt55938/cache",
|
||||||
|
"-Werror" // to forbid retry with auto-cache disabled
|
||||||
|
]
|
||||||
|
|
||||||
|
doBeforeBuild {
|
||||||
|
mkdir(buildDir)
|
||||||
|
def cacheDir = new File("-Xauto-cache-dir=$testOutputRoot/local/interop_objc_kt55938/cache")
|
||||||
|
cacheDir.deleteDir()
|
||||||
|
project.extensions.execClang.execClangForCompilerTests(project.target) {
|
||||||
|
args "$projectDir/interop/objc/kt55938/objclib.m"
|
||||||
|
args "-lobjc", '-fobjc-arc'
|
||||||
|
args '-fPIC', '-shared', '-o', "$buildDir/libobjc_kt55938.dylib"
|
||||||
|
}
|
||||||
|
if (UtilsKt.isSimulatorTarget(project, project.target)) {
|
||||||
|
UtilsKt.codesign(project, "$buildDir/libobjc_kt55938.dylib")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
standaloneTest("objc_arc_contract") {
|
standaloneTest("objc_arc_contract") {
|
||||||
doBeforeBuild {
|
doBeforeBuild {
|
||||||
mkdir(buildDir)
|
mkdir(buildDir)
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kt55938lib
|
||||||
|
|
||||||
|
import objclib.*
|
||||||
|
|
||||||
|
inline fun foo() = ObjCClass.foo()
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import kt55938lib.*
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
print("foo() call result is ${foo()}")
|
||||||
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
foo() call result is 42
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
language = Objective-C
|
||||||
|
headerFilter = **/objclib.h
|
||||||
|
linkerOpts = -lobjc_kt55938
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
|
@interface ObjCClass : NSObject
|
||||||
|
+ (int)foo;
|
||||||
|
@end
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#include "objclib.h"
|
||||||
|
|
||||||
|
|
||||||
|
@implementation ObjCClass {
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (int)foo {
|
||||||
|
return 42;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
Reference in New Issue
Block a user