[ObjCExport] Constructors fixes, cloneables handling, annotations

This commit is contained in:
eugene.levenetc
2024-02-12 13:30:07 +00:00
committed by Space Team
parent 545753ff4c
commit 0ec9f2a8b9
24 changed files with 498 additions and 46 deletions
@@ -26,8 +26,6 @@ class ObjCDependenciesTypesTest(
) {
/**
* - Wrong translation of constructors KT-65365
* - Bad parsing of versions (SinceKotlin Annotation)
* - Missing implementation of mangling
*/
@Test
@@ -41,14 +39,27 @@ class ObjCDependenciesTypesTest(
doTest(dependenciesDir.resolve("iterator"))
}
@Test
fun `test - array`() {
doTest(dependenciesDir.resolve("array"))
}
/**
* - Wrong translation of constructors KT-65365
* - Exposing unwanted 'clone' method KT-65629
* Fails because of KT-65709
*/
@Test
@TodoAnalysisApi
fun `test - array`() {
doTest(dependenciesDir.resolve("array"))
fun `test - arrayList`() {
doTest(dependenciesDir.resolve("arrayList"))
}
/**
* Int* type conversion issue: KT-65687
*/
@Test
@TodoAnalysisApi
fun `test - implementIterator`() {
doTest(dependenciesDir.resolve("implementIterator"))
}
private fun doTest(root: File) {
@@ -101,6 +101,11 @@ class ObjCExportHeaderGeneratorTest(private val generator: HeaderGenerator) {
doTest(headersTestDataDir.resolve("classImplementingInterface"))
}
@Test
fun `test - classExtendsAbstractClass`() {
doTest(headersTestDataDir.resolve("classExtendsAbstractClass"))
}
@Test
@TodoAnalysisApi
fun `test - interfaceImplementingInterface`() {
@@ -258,6 +263,20 @@ class ObjCExportHeaderGeneratorTest(private val generator: HeaderGenerator) {
doTest(headersTestDataDir.resolve("objectWithGenericSuperclass"))
}
@Test
fun `test - since version annotation`() {
doTest(headersTestDataDir.resolve("sinceVersionAnnotation"))
}
/**
* - requires mangling
*/
@TodoAnalysisApi
@Test
fun `test - constructors`() {
doTest(headersTestDataDir.resolve("constructors"))
}
private fun doTest(root: File, configuration: Configuration = Configuration()) {
if (!root.isDirectory) fail("Expected ${root.absolutePath} to be directory")
val generatedHeaders = generator.generateHeaders(root, configuration).toString()