blob: 1a54e3cdeb724168d88fdfdbfbf702066ab7ed1c [file] [log] [blame]
// RUN: %target-run-simple-swift
// REQUIRES: executable_test
// REQUIRES: objc_interop
import Foundation
import StdlibUnittest
var FoundationPrinting = TestSuite("FoundationPrinting")
FoundationPrinting.test("OverlayTypesHaveDescription") {
func hasDescription(_: CustomStringConvertible) {}
var a: ObjCBool = true
hasDescription(a)
}
FoundationPrinting.test("ObjCBoolPrinting") {
var true_: ObjCBool = true
var false_: ObjCBool = false
expectPrinted("true", true_)
expectPrinted("false", false_)
}
FoundationPrinting.test("SelectorPrinting") {
expectPrinted("", Selector(""))
expectPrinted(":", Selector(":"))
expectPrinted("a", Selector("a"))
expectPrinted("abc", Selector("abc"))
expectPrinted("abc:", Selector("abc:"))
expectPrinted("abc:def:", Selector("abc:def:"))
}
// Pure Swift classes with and without a custom description
class PureSwiftDescription {
@objc var description: String = "awesome"
}
class PureSwiftNoDescription {
var x = 318
}
FoundationPrinting.test("NSArrayDescription") {
var array = NSArray(objects:PureSwiftDescription(), PureSwiftNoDescription())
var expected =
"(\n" +
" awesome,\n" +
" \"main.PureSwiftNoDescription\"\n" +
")"
expectPrinted(expected, array)
}
runAllTests()