// RUN: %target-run-simple-swift // REQUIRES: executable_test import StdlibUnittest struct StructWithMembers { var a = 1 var b = "Hello World" } class ClassWithMembers { var a = 1 var b = "Hello World" } class ClassWithMirror: CustomReflectable { var customMirror: Mirror { return Mirror(self, children: ["a" : 1, "b" : "Hello World"]) } } #if _runtime(_ObjC) struct DontBridgeThisStruct { var message = "Hello World" } extension DontBridgeThisStruct : _ObjectiveCBridgeable { typealias _ObjectiveCType = AnyObject func _bridgeToObjectiveC() -> _ObjectiveCType { fatalError("tried to bridge DontBridgeThisStruct") } static func _forceBridgeFromObjectiveC( _ source: _ObjectiveCType, result: inout DontBridgeThisStruct? ) { result = nil } static func _conditionallyBridgeFromObjectiveC( _ source: _ObjectiveCType, result: inout DontBridgeThisStruct? ) -> Bool { result = nil return false } static func _unconditionallyBridgeFromObjectiveC(_ source: _ObjectiveCType?) -> DontBridgeThisStruct { return DontBridgeThisStruct() } } #endif let StringForPrintObjectTests = TestSuite("StringForPrintObject") StringForPrintObjectTests.test("StructWithMembers") { let printed = _DebuggerSupport.stringForPrintObject(StructWithMembers()) expectEqual(printed, "▿ StructWithMembers\n - a : 1\n - b : \"Hello World\"\n") } #if _runtime(_ObjC) StringForPrintObjectTests.test("ClassWithMembers") { let printed = _DebuggerSupport.stringForPrintObject(ClassWithMembers()) expectTrue(printed.hasPrefix("\n - some : 3\n") } #if _runtime(_ObjC) StringForPrintObjectTests.test("DontBridgeThisStruct") { let printed = _DebuggerSupport.stringForPrintObject(DontBridgeThisStruct()) expectEqual(printed, "▿ DontBridgeThisStruct\n - message : \"Hello World\"\n") } #endif runAllTests()