Skip to content

Commit cc60db7

Browse files
committed
[test] validate behaviour when copying from an empty buffer
1 parent e40e0f7 commit cc60db7

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

validation-test/stdlib/UnsafeBufferPointer.swift.gyb

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,30 @@ ${SelfName}TestSuite.test("nilBaseAddress") {
179179
expectEqualSequence([], emptyBuffer)
180180
}
181181

182+
% if IsMutable:
183+
${SelfName}TestSuite.test("copyFromEmptyBuffer") {
184+
% if IsRaw:
185+
var memory: UnsafeMutableRawPointer
186+
let empty = UnsafeRawBufferPointer(start: nil, count: 0)
187+
% else:
188+
var memory: UnsafeMutablePointer<Float>
189+
let empty = UnsafeBufferPointer<Float>(start: nil, count: 0)
190+
% end
191+
192+
let count = 4
193+
memory = allocateFor${Raw}Buffer(count: count)
194+
defer { deallocateFor${Raw}Buffer(memory, count: count) }
195+
196+
let buffer = UnsafeMutable${Raw}BufferPointer(start: memory, count: count)
197+
198+
% if IsRaw:
199+
buffer.copyMemory(from: empty)
200+
% else:
201+
_ = buffer.initialize(from: empty)
202+
% end
203+
}
204+
% end
205+
182206
${SelfName}TestSuite.test("nonNilButEmpty") {
183207
let emptyAllocated = UnsafeMutablePointer<Float>.allocate(capacity: 0)
184208
defer { emptyAllocated.deallocate() }

0 commit comments

Comments
 (0)