[ObjCType] Add basic implementation of base method, fix tests

KT-65687
This commit is contained in:
eugene.levenetc
2024-02-22 15:28:22 +01:00
committed by Space Team
parent 1c2570ed7e
commit 078f0ff6e1
18 changed files with 471 additions and 14 deletions
@@ -49,11 +49,7 @@ class ObjCDependenciesTypesTest(
doTest(dependenciesDir.resolve("arrayList"))
}
/**
* Int* type conversion issue: KT-65687
*/
@Test
@TodoAnalysisApi
fun `test - implementIterator`() {
doTest(dependenciesDir.resolve("implementIterator"))
}
@@ -222,12 +222,7 @@ class ObjCExportHeaderGeneratorTest(private val generator: HeaderGenerator) {
doTest(headersTestDataDir.resolve("classReferencingOtherClassAsReturnType"))
}
/**
* - IntIterator has unwanted 'hasNext' exposed
* - IntIterator's next method returns int32_t instead of expected Int *
*/
@Test
@TodoAnalysisApi
fun `test - classReferencingDependencyClassAsReturnType`() {
doTest(headersTestDataDir.resolve("classReferencingDependencyClassAsReturnType"))
}
@@ -321,9 +316,34 @@ class ObjCExportHeaderGeneratorTest(private val generator: HeaderGenerator) {
doTest(headersTestDataDir.resolve("memberFunctionSignatureOrder"))
}
@Test
fun `test - multiple inheritance`() {
doTest(headersTestDataDir.resolve("multipleInheritance"))
}
@Test
fun `test - private super interface`() {
doTest(headersTestDataDir.resolve("privateSuperInterface"))
}
@Test
fun `test- privateSuperInterfaceWithCovariantOverride`() {
doTest(headersTestDataDir.resolve("privateSuperInterfaceWithCovariantOverride"))
}
@Test
fun `test - superClassWithCovariantOverride`() {
doTest(headersTestDataDir.resolve("superClassWithCovariantOverride"))
}
@Test
fun `test - privateGenericSuperInterface`() {
doTest(headersTestDataDir.resolve("privateGenericSuperInterface"))
}
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()
KotlinTestUtils.assertEqualsToFile(root.resolve("!${root.nameWithoutExtension}.h"), generatedHeaders)
}
}
}