// RUN: %target-run-simple-swift // REQUIRES: executable_test import StdlibUnittest // Also import modules which are used by StdlibUnittest internally. This // workaround is needed to link all required libraries in case we compile // StdlibUnittest with -sil-serialize-all. #if _runtime(_ObjC) import ObjectiveC #endif let PrintTests = TestSuite("PrintPointer") PrintTests.test("Printable") { let nullUP: UnsafeMutablePointer = nil let fourByteUP = UnsafeMutablePointer(bitPattern: 0xabcd1234 as UInt) #if !(arch(i386) || arch(arm)) let eightByteAddr: UInt = 0xabcddcba12344321 let eightByteUP = UnsafeMutablePointer(bitPattern: eightByteAddr) #endif #if arch(i386) || arch(arm) let expectedNull = "0x00000000" expectPrinted("0xabcd1234", fourByteUP) #else let expectedNull = "0x0000000000000000" expectPrinted("0x00000000abcd1234", fourByteUP) expectPrinted("0xabcddcba12344321", eightByteUP) #endif expectPrinted(expectedNull, nullUP) expectPrinted("UnsafeBufferPointer(start: \(expectedNull), count: 0)", UnsafeBufferPointer(start: nullUP, count: 0)) expectPrinted("UnsafeMutableBufferPointer(start: \(expectedNull), count: 0)", UnsafeMutableBufferPointer(start: nullUP, count: 0)) let nullOpaque: OpaquePointer = nil expectPrinted(expectedNull, nullOpaque) expectPrinted(expectedNull, CVaListPointer(_fromUnsafeMutablePointer: nullUP)) #if _runtime(_ObjC) let nullAutoUP: AutoreleasingUnsafeMutablePointer = nil expectPrinted(expectedNull, nullAutoUP) #endif } runAllTests()