| // 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() |
| |