Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions Tests/JExtractSwiftTests/MethodImportTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -668,6 +668,57 @@ final class MethodImportTests {
)
}

let overloadedInitializers_interfaceFile =
"""
import Swift

public class OverloadedInitializerClass {
public init(throwing: Swift.Bool) throws
public init(doInit: Swift.Bool)
}
"""

@Test(
"Overloaded initializers with same Java signature get suffixed Java names",
arguments: [
JExtractGenerationMode.jni, .ffm,
]
)
func overloaded_initializers_suffixed(mode: JExtractGenerationMode) throws {
let expectedChunks: [String]
let notExpectedChunks: [String]

switch mode {
case .ffm:
expectedChunks = [
"public static OverloadedInitializerClass initThrowing(boolean throwing, AllocatingSwiftArena swiftArena)",
"public static OverloadedInitializerClass initDoInit(boolean doInit, AllocatingSwiftArena swiftArena)",
]
notExpectedChunks = [
"public static OverloadedInitializerClass init(boolean throwing, AllocatingSwiftArena swiftArena)",
"public static OverloadedInitializerClass init(boolean doInit, AllocatingSwiftArena swiftArena)",
]
case .jni:
expectedChunks = [
"public static OverloadedInitializerClass initThrowing(boolean throwing, SwiftArena swiftArena) throws Exception",
"public static OverloadedInitializerClass initDoInit(boolean doInit, SwiftArena swiftArena)",
]
notExpectedChunks = [
"public static OverloadedInitializerClass init(boolean throwing, SwiftArena swiftArena)",
"public static OverloadedInitializerClass init(boolean doInit, SwiftArena swiftArena)",
]
}

try assertOutput(
input: overloadedInitializers_interfaceFile,
mode,
.java,
swiftModuleName: "OverloadModule",
expectedChunks: expectedChunks,
notExpectedChunks: notExpectedChunks
)
}

// ==== -------------------------------------------------------------------
// MARK: JNI overloaded method disambiguation

Expand Down Expand Up @@ -776,4 +827,5 @@ final class MethodImportTests {
]
)
}

}
Loading