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
|
// RUN: %target-run-simple-swift(-I %S/Inputs/ -Xfrontend -enable-experimental-cxx-interop)
//
// REQUIRES: executable_test
import StdlibUnittest
import FreeFunctions
var NamespacesTestSuite = TestSuite("Functions in namespaces")
NamespacesTestSuite.test("Basic functions") {
let basicFunctionTopLevelCString = FunctionsNS1.basicFunctionTopLevel()
expectEqual(String(cString: basicFunctionTopLevelCString!),
"FunctionsNS1::basicFunctionTopLevel")
let basicFunctionSecondLevelCString = FunctionsNS1.FunctionsNS2.basicFunctionSecondLevel()
expectEqual(String(cString: basicFunctionSecondLevelCString!),
"FunctionsNS1::FunctionsNS2::basicFunctionSecondLevel")
let basicFunctionLowestLevelCString = FunctionsNS1.FunctionsNS2.FunctionsNS3.basicFunctionLowestLevel()
expectEqual(String(cString: basicFunctionLowestLevelCString!),
"FunctionsNS1::FunctionsNS2::FunctionsNS3::basicFunctionLowestLevel")
let x = FunctionsNS1.X()
expectEqual(String(cString: x + x),
"FunctionsNS1::operator+(X, X)")
}
NamespacesTestSuite.test("Forward declared functions") {
let forwardDeclaredCString = FunctionsNS1.forwardDeclared()
expectEqual(String(cString: forwardDeclaredCString!), "FunctionsNS1::forwardDeclared")
let definedOutOfLineCString = FunctionsNS1.definedOutOfLine()
expectEqual(String(cString: definedOutOfLineCString!), "FunctionsNS1::definedOutOfLine")
}
NamespacesTestSuite.test("Functions with the same name") {
let sameNameInChildCString = FunctionsNS1.sameNameInChild()
expectEqual(String(cString: sameNameInChildCString!), "FunctionsNS1::sameNameInChild")
let sameNameInSiblingCString = FunctionsNS1.sameNameInSibling()
expectEqual(String(cString: sameNameInSiblingCString!), "FunctionsNS1::sameNameInSibling")
let ns2SameNameInChildCString = FunctionsNS1.FunctionsNS2.sameNameInChild()
expectEqual(String(cString: ns2SameNameInChildCString!),
"FunctionsNS1::FunctionsNS2::sameNameInChild")
let ns4SameNameInSiblingCString = FunctionsNS4.sameNameInSibling()
expectEqual(String(cString: ns4SameNameInSiblingCString!), "FunctionsNS4::sameNameInSibling")
}
runAllTests()
|