@@ -79,12 +79,13 @@ UnsafeRawBufferPointerTestSuite.test("initializeMemory(as:from:).underflow") {
79
79
let buffer = UnsafeMutableRawBufferPointer . allocate ( count: 30 )
80
80
defer { buffer. deallocate ( ) }
81
81
let source = stride ( from: 5 as Int64 , to: 0 , by: - 1 )
82
- var ( it, idx) = buffer. initializeMemory ( as: Int64 . self, from: source)
82
+ var ( it, bound) = buffer. initializeMemory ( as: Int64 . self, from: source)
83
+ let idx = bound. endIndex * MemoryLayout< Int64> . stride
83
84
expectEqual ( it. next ( ) !, 2 )
84
85
expectEqual ( idx, 24 )
85
- ( [ 5 , 4 , 3 ] as [ Int64 ] ) . withUnsafeBytes {
86
- expectEqualSequence ( $0, buffer [ 0 ..< idx] )
87
- }
86
+ let expected : [ Int64 ] = [ 5 , 4 , 3 ]
87
+ expected . withUnsafeBytes { expectEqualSequence ( $0, buffer [ 0 ..< idx] ) }
88
+ expectEqualSequence ( [ 5 , 4 , 3 ] , bound )
88
89
}
89
90
90
91
UnsafeRawBufferPointerTestSuite . test ( " initializeMemory(as:from:).overflow " ) {
@@ -94,35 +95,39 @@ UnsafeRawBufferPointerTestSuite.test("initializeMemory(as:from:).overflow") {
94
95
if _isDebugAssertConfiguration ( ) {
95
96
expectCrashLater ( )
96
97
}
97
- var ( it, idx) = buffer. initializeMemory ( as: Int64 . self, from: source)
98
+ var ( it, bound) = buffer. initializeMemory ( as: Int64 . self, from: source)
99
+ let idx = bound. endIndex * MemoryLayout< Int64> . stride
98
100
expectEqual ( it. next ( ) !, 2 )
99
101
expectEqual ( idx, 24 )
100
- ( [ 5 , 4 , 3 ] as [ Int64 ] ) . withUnsafeBytes {
101
- expectEqualSequence ( $0, buffer [ 0 ..< idx] )
102
- }
102
+ let expected : [ Int64 ] = [ 5 , 4 , 3 ]
103
+ expected . withUnsafeBytes { expectEqualSequence ( $0, buffer [ 0 ..< idx] ) }
104
+ expectEqualSequence ( [ 5 , 4 , 3 ] , bound )
103
105
}
104
106
105
107
UnsafeRawBufferPointerTestSuite . test ( " initializeMemory(as:from:).exact " ) {
106
108
let buffer = UnsafeMutableRawBufferPointer . allocate ( count: 24 )
107
109
defer { buffer. deallocate ( ) }
108
110
let source : [ Int64 ] = [ 5 , 4 , 3 ]
109
- var ( it, idx) = buffer. initializeMemory ( as: Int64 . self, from: source)
111
+ var ( it, bound) = buffer. initializeMemory ( as: Int64 . self, from: source)
112
+ let idx = bound. endIndex * MemoryLayout< Int64> . stride
110
113
expectNil ( it. next ( ) )
111
114
expectEqual ( idx, buffer. endIndex)
112
115
source. withUnsafeBytes { expectEqualSequence ( $0, buffer) }
116
+ expectEqualSequence ( [ 5 , 4 , 3 ] , bound)
113
117
}
114
118
115
119
UnsafeRawBufferPointerTestSuite . test ( " initializeMemory(as:from:).invalidNilPtr " ) {
116
120
let buffer = UnsafeMutableRawBufferPointer ( start: nil , count: 0 )
117
121
let source : [ Int64 ] = [ 5 , 4 , 3 , 2 , 1 ]
118
122
expectCrashLater ( )
119
- var ( it, idx ) = buffer. initializeMemory ( as: Int64 . self, from: source)
123
+ var ( it, bound ) = buffer. initializeMemory ( as: Int64 . self, from: source)
120
124
}
121
125
122
126
UnsafeRawBufferPointerTestSuite . test ( " initializeMemory(as:from:).validNilPtr " ) {
123
127
let buffer = UnsafeMutableRawBufferPointer ( start: nil , count: 0 )
124
128
let source : [ Int64 ] = [ ]
125
- var ( it, idx) = buffer. initializeMemory ( as: Int64 . self, from: source)
129
+ var ( it, bound) = buffer. initializeMemory ( as: Int64 . self, from: source)
130
+ let idx = bound. endIndex * MemoryLayout< Int64> . stride
126
131
expectNil ( it. next ( ) )
127
132
expectEqual ( idx, source. endIndex)
128
133
}
0 commit comments