1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
// RUN: %target-run-simple-swift(-I %S/Inputs/ -Xfrontend -enable-experimental-cxx-interop)
//
// REQUIRES: executable_test
import StdlibUnittest
import Methods
var CxxMethodTestSuite = TestSuite("CxxMethods")
CxxMethodTestSuite.test("() -> Void") {
var instance = HasMethods()
instance.nonConstMethod()
instance.nonConstMethod(5)
HasMethods.nonConstMethod(4.2) // Testing name collision
instance.constMethod()
HasMethods.constMethod(4.2) // Testing name collision
}
CxxMethodTestSuite.test("(Int) -> Int") {
var instance = HasMethods()
expectEqual(42, instance.nonConstPassThrough(42))
expectEqual(42, instance.constPassThrough(42))
}
CxxMethodTestSuite.test("(Int, Int) -> Int") {
var instance = HasMethods()
expectEqual(42, instance.nonConstSum(40, 2))
expectEqual(42, instance.constSum(40, 2))
}
CxxMethodTestSuite.test("(NonTrivialInWrapper, NonTrivialInWrapper) -> Int") {
var instance = HasMethods()
expectEqual(42, instance.nonConstSum(NonTrivialInWrapper(40), NonTrivialInWrapper(2)))
expectEqual(42, instance.constSum(NonTrivialInWrapper(40), NonTrivialInWrapper(2)))
}
CxxMethodTestSuite.test("(NonTrivialInWrapper, NonTrivialInWrapper) -> NonTrivialInWrapper") {
var instance = HasMethods()
expectEqual(42, instance.nonConstSumAsWrapper(NonTrivialInWrapper(40), NonTrivialInWrapper(2)).value)
expectEqual(42, instance.constSumAsWrapper(NonTrivialInWrapper(40), NonTrivialInWrapper(2)).value)
}
CxxMethodTestSuite.test("(Int) -> NonTrivialInWrapper") {
var instance = HasMethods()
expectEqual(42, instance.nonConstPassThroughAsWrapper(42).value)
expectEqual(42, instance.constPassThroughAsWrapper(42).value)
}
CxxMethodTestSuite.test("Constructor with ref params") {
let a = CInt(42)
let b = CInt(11)
var instance = ReferenceParams(a, b)
expectEqual(42, instance.a)
expectEqual(11, instance.b)
}
// Just make sure we don't crash
CxxMethodTestSuite.test("Static method with ref params") {
let a = CInt(42)
let b = CInt(11)
ReferenceParams.staticMethod(a, b)
}
runAllTests()
|