@@ -72,30 +72,6 @@ if #available(OSX 10.10, iOS 8.0, *) {
72
72
}
73
73
}
74
74
75
- DispatchAPI . test ( " dispatch_data_t enumeration " ) {
76
- // Ensure we can iterate the empty iterator
77
- for _ in DispatchData . empty {
78
- _ = 1
79
- }
80
- }
81
-
82
- DispatchAPI . test ( " dispatch_data_t deallocator " ) {
83
- let q = DispatchQueue ( label: " dealloc queue " )
84
- var t = 0
85
-
86
- autoreleasepool {
87
- let size = 1024
88
- let p = UnsafeMutablePointer< UInt8> . allocate( capacity: size)
89
- let _ = DispatchData ( bytesNoCopy: UnsafeBufferPointer ( start: p, count: size) , deallocator: . custom( q, {
90
- t = 1
91
- } ) )
92
- }
93
-
94
- q. sync {
95
- expectEqual ( 1 , t)
96
- }
97
- }
98
-
99
75
DispatchAPI . test ( " DispatchTime comparisons " ) {
100
76
do {
101
77
let now = DispatchTime . now ( )
@@ -201,317 +177,6 @@ DispatchAPI.test("DispatchTime.uptimeNanos") {
201
177
expectEqual ( NSEC_PER_SEC, diffNanos)
202
178
}
203
179
204
- DispatchAPI . test ( " DispatchData.copyBytes " ) {
205
- let source1 : [ UInt8 ] = [ 0 , 1 , 2 , 3 ]
206
- let srcPtr1 = UnsafeBufferPointer ( start: source1, count: source1. count)
207
-
208
- var dest : [ UInt8 ] = [ 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF ]
209
- let destPtr = UnsafeMutableBufferPointer ( start: UnsafeMutablePointer ( & dest) ,
210
- count: dest. count)
211
-
212
- var dispatchData = DispatchData ( bytes: srcPtr1)
213
-
214
- // Copy from offset 0
215
- var count = dispatchData. copyBytes ( to: destPtr, from: 0 ..< 2 )
216
- expectEqual ( count, 2 )
217
- expectEqual ( destPtr [ 0 ] , 0 )
218
- expectEqual ( destPtr [ 1 ] , 1 )
219
- expectEqual ( destPtr [ 2 ] , 0xFF )
220
- expectEqual ( destPtr [ 3 ] , 0xFF )
221
- expectEqual ( destPtr [ 4 ] , 0xFF )
222
- expectEqual ( destPtr [ 5 ] , 0xFF )
223
-
224
- // Copy from offset 2
225
- count = dispatchData. copyBytes ( to: destPtr, from: 2 ..< 4 )
226
- expectEqual ( count, 2 )
227
- expectEqual ( destPtr [ 0 ] , 2 )
228
- expectEqual ( destPtr [ 1 ] , 3 )
229
- expectEqual ( destPtr [ 2 ] , 0xFF )
230
- expectEqual ( destPtr [ 3 ] , 0xFF )
231
- expectEqual ( destPtr [ 4 ] , 0xFF )
232
- expectEqual ( destPtr [ 5 ] , 0xFF )
233
-
234
- // Add two more regions
235
- let source2 : [ UInt8 ] = [ 0x10 , 0x11 , 0x12 , 0x13 ]
236
- let srcPtr2 = UnsafeBufferPointer ( start: source2, count: source2. count)
237
- dispatchData. append ( DispatchData ( bytes: srcPtr2) )
238
-
239
- let source3 : [ UInt8 ] = [ 0x14 , 0x15 , 0x16 ]
240
- let srcPtr3 = UnsafeBufferPointer ( start: source3, count: source3. count)
241
- dispatchData. append ( DispatchData ( bytes: srcPtr3) )
242
-
243
- // Copy from offset 0. Copies across the first two regions
244
- count = dispatchData. copyBytes ( to: destPtr, from: 0 ..< 6 )
245
- expectEqual ( count, 6 )
246
- expectEqual ( destPtr [ 0 ] , 0 )
247
- expectEqual ( destPtr [ 1 ] , 1 )
248
- expectEqual ( destPtr [ 2 ] , 2 )
249
- expectEqual ( destPtr [ 3 ] , 3 )
250
- expectEqual ( destPtr [ 4 ] , 0x10 )
251
- expectEqual ( destPtr [ 5 ] , 0x11 )
252
-
253
- // Copy from offset 2. Copies across the first two regions
254
- count = dispatchData. copyBytes ( to: destPtr, from: 2 ..< 8 )
255
- expectEqual ( count, 6 )
256
- expectEqual ( destPtr [ 0 ] , 2 )
257
- expectEqual ( destPtr [ 1 ] , 3 )
258
- expectEqual ( destPtr [ 2 ] , 0x10 )
259
- expectEqual ( destPtr [ 3 ] , 0x11 )
260
- expectEqual ( destPtr [ 4 ] , 0x12 )
261
- expectEqual ( destPtr [ 5 ] , 0x13 )
262
-
263
- // Copy from offset 3. Copies across all three regions
264
- count = dispatchData. copyBytes ( to: destPtr, from: 3 ..< 9 )
265
- expectEqual ( count, 6 )
266
- expectEqual ( destPtr [ 0 ] , 3 )
267
- expectEqual ( destPtr [ 1 ] , 0x10 )
268
- expectEqual ( destPtr [ 2 ] , 0x11 )
269
- expectEqual ( destPtr [ 3 ] , 0x12 )
270
- expectEqual ( destPtr [ 4 ] , 0x13 )
271
- expectEqual ( destPtr [ 5 ] , 0x14 )
272
-
273
- // Copy from offset 5. Skips the first region and the first byte of the second
274
- count = dispatchData. copyBytes ( to: destPtr, from: 5 ..< 11 )
275
- expectEqual ( count, 6 )
276
- expectEqual ( destPtr [ 0 ] , 0x11 )
277
- expectEqual ( destPtr [ 1 ] , 0x12 )
278
- expectEqual ( destPtr [ 2 ] , 0x13 )
279
- expectEqual ( destPtr [ 3 ] , 0x14 )
280
- expectEqual ( destPtr [ 4 ] , 0x15 )
281
- expectEqual ( destPtr [ 5 ] , 0x16 )
282
-
283
- // Copy from offset 8. Skips the first two regions
284
- destPtr [ 3 ] = 0xFF
285
- destPtr [ 4 ] = 0xFF
286
- destPtr [ 5 ] = 0xFF
287
- count = dispatchData. copyBytes ( to: destPtr, from: 8 ..< 11 )
288
- expectEqual ( count, 3 )
289
- expectEqual ( destPtr [ 0 ] , 0x14 )
290
- expectEqual ( destPtr [ 1 ] , 0x15 )
291
- expectEqual ( destPtr [ 2 ] , 0x16 )
292
- expectEqual ( destPtr [ 3 ] , 0xFF )
293
- expectEqual ( destPtr [ 4 ] , 0xFF )
294
- expectEqual ( destPtr [ 5 ] , 0xFF )
295
-
296
- // Copy from offset 9. Skips the first two regions and the first byte of the third
297
- destPtr [ 2 ] = 0xFF
298
- destPtr [ 3 ] = 0xFF
299
- destPtr [ 4 ] = 0xFF
300
- destPtr [ 5 ] = 0xFF
301
- count = dispatchData. copyBytes ( to: destPtr, from: 9 ..< 11 )
302
- expectEqual ( count, 2 )
303
- expectEqual ( destPtr [ 0 ] , 0x15 )
304
- expectEqual ( destPtr [ 1 ] , 0x16 )
305
- expectEqual ( destPtr [ 2 ] , 0xFF )
306
- expectEqual ( destPtr [ 3 ] , 0xFF )
307
- expectEqual ( destPtr [ 4 ] , 0xFF )
308
- expectEqual ( destPtr [ 5 ] , 0xFF )
309
-
310
- // Copy from offset 9, but only 1 byte. Ends before the end of the data
311
- destPtr [ 1 ] = 0xFF
312
- destPtr [ 2 ] = 0xFF
313
- destPtr [ 3 ] = 0xFF
314
- destPtr [ 4 ] = 0xFF
315
- destPtr [ 5 ] = 0xFF
316
- count = dispatchData. copyBytes ( to: destPtr, from: 9 ..< 10 )
317
- expectEqual ( count, 1 )
318
- expectEqual ( destPtr [ 0 ] , 0x15 )
319
- expectEqual ( destPtr [ 1 ] , 0xFF )
320
- expectEqual ( destPtr [ 2 ] , 0xFF )
321
- expectEqual ( destPtr [ 3 ] , 0xFF )
322
- expectEqual ( destPtr [ 4 ] , 0xFF )
323
- expectEqual ( destPtr [ 5 ] , 0xFF )
324
-
325
- // Copy from offset 2, but only 1 byte. This copy is bounded within the
326
- // first region.
327
- destPtr [ 1 ] = 0xFF
328
- destPtr [ 2 ] = 0xFF
329
- destPtr [ 3 ] = 0xFF
330
- destPtr [ 4 ] = 0xFF
331
- destPtr [ 5 ] = 0xFF
332
- count = dispatchData. copyBytes ( to: destPtr, from: 2 ..< 3 )
333
- expectEqual ( count, 1 )
334
- expectEqual ( destPtr [ 0 ] , 2 )
335
- expectEqual ( destPtr [ 1 ] , 0xFF )
336
- expectEqual ( destPtr [ 2 ] , 0xFF )
337
- expectEqual ( destPtr [ 3 ] , 0xFF )
338
- expectEqual ( destPtr [ 4 ] , 0xFF )
339
- expectEqual ( destPtr [ 5 ] , 0xFF )
340
- }
341
-
342
- DispatchAPI . test ( " DispatchData.copyBytesUnsafeRawBufferPointer " ) {
343
- let source1 : [ UInt8 ] = [ 0 , 1 , 2 , 3 ]
344
- let srcPtr1 = UnsafeRawBufferPointer ( start: source1, count: source1. count)
345
-
346
- var dest : [ UInt8 ] = [ 0xFF , 0xFF , 0xFF , 0xFF , 0xFF , 0xFF ]
347
- let destPtr = UnsafeMutableRawBufferPointer ( start: UnsafeMutablePointer ( & dest) ,
348
- count: dest. count)
349
- var dispatchData = DispatchData ( bytes: srcPtr1)
350
-
351
- // Copy from offset 0
352
- dispatchData. copyBytes ( to: destPtr, from: 0 ..< 2 )
353
- expectEqual ( destPtr [ 0 ] , 0 )
354
- expectEqual ( destPtr [ 1 ] , 1 )
355
- expectEqual ( destPtr [ 2 ] , 0xFF )
356
- expectEqual ( destPtr [ 3 ] , 0xFF )
357
- expectEqual ( destPtr [ 4 ] , 0xFF )
358
- expectEqual ( destPtr [ 5 ] , 0xFF )
359
-
360
- // Copy from offset 2
361
- dispatchData. copyBytes ( to: destPtr, from: 2 ..< 4 )
362
- expectEqual ( destPtr [ 0 ] , 2 )
363
- expectEqual ( destPtr [ 1 ] , 3 )
364
- expectEqual ( destPtr [ 2 ] , 0xFF )
365
- expectEqual ( destPtr [ 3 ] , 0xFF )
366
- expectEqual ( destPtr [ 4 ] , 0xFF )
367
- expectEqual ( destPtr [ 5 ] , 0xFF )
368
-
369
- // Add two more regions
370
- let source2 : [ UInt8 ] = [ 0x10 , 0x11 , 0x12 , 0x13 ]
371
- let srcPtr2 = UnsafeRawBufferPointer ( start: source2, count: source2. count)
372
- dispatchData. append ( DispatchData ( bytes: srcPtr2) )
373
-
374
- let source3 : [ UInt8 ] = [ 0x14 , 0x15 , 0x16 ]
375
- let srcPtr3 = UnsafeRawBufferPointer ( start: source3, count: source3. count)
376
- dispatchData. append ( DispatchData ( bytes: srcPtr3) )
377
-
378
- // Copy from offset 0. Copies across the first two regions
379
- dispatchData. copyBytes ( to: destPtr, from: 0 ..< 6 )
380
- expectEqual ( destPtr [ 0 ] , 0 )
381
- expectEqual ( destPtr [ 1 ] , 1 )
382
- expectEqual ( destPtr [ 2 ] , 2 )
383
- expectEqual ( destPtr [ 3 ] , 3 )
384
- expectEqual ( destPtr [ 4 ] , 0x10 )
385
- expectEqual ( destPtr [ 5 ] , 0x11 )
386
-
387
- // Copy from offset 2. Copies across the first two regions
388
- dispatchData. copyBytes ( to: destPtr, from: 2 ..< 8 )
389
- expectEqual ( destPtr [ 0 ] , 2 )
390
- expectEqual ( destPtr [ 1 ] , 3 )
391
- expectEqual ( destPtr [ 2 ] , 0x10 )
392
- expectEqual ( destPtr [ 3 ] , 0x11 )
393
- expectEqual ( destPtr [ 4 ] , 0x12 )
394
- expectEqual ( destPtr [ 5 ] , 0x13 )
395
-
396
- // Copy from offset 3. Copies across all three regions
397
- dispatchData. copyBytes ( to: destPtr, from: 3 ..< 9 )
398
- expectEqual ( destPtr [ 0 ] , 3 )
399
- expectEqual ( destPtr [ 1 ] , 0x10 )
400
- expectEqual ( destPtr [ 2 ] , 0x11 )
401
- expectEqual ( destPtr [ 3 ] , 0x12 )
402
- expectEqual ( destPtr [ 4 ] , 0x13 )
403
- expectEqual ( destPtr [ 5 ] , 0x14 )
404
-
405
- // Copy from offset 5. Skips the first region and the first byte of the second
406
- dispatchData. copyBytes ( to: destPtr, from: 5 ..< 11 )
407
- expectEqual ( destPtr [ 0 ] , 0x11 )
408
- expectEqual ( destPtr [ 1 ] , 0x12 )
409
- expectEqual ( destPtr [ 2 ] , 0x13 )
410
- expectEqual ( destPtr [ 3 ] , 0x14 )
411
- expectEqual ( destPtr [ 4 ] , 0x15 )
412
- expectEqual ( destPtr [ 5 ] , 0x16 )
413
-
414
- // Copy from offset 8. Skips the first two regions
415
- destPtr [ 3 ] = 0xFF
416
- destPtr [ 4 ] = 0xFF
417
- destPtr [ 5 ] = 0xFF
418
- dispatchData. copyBytes ( to: destPtr, from: 8 ..< 11 )
419
- expectEqual ( destPtr [ 0 ] , 0x14 )
420
- expectEqual ( destPtr [ 1 ] , 0x15 )
421
- expectEqual ( destPtr [ 2 ] , 0x16 )
422
- expectEqual ( destPtr [ 3 ] , 0xFF )
423
- expectEqual ( destPtr [ 4 ] , 0xFF )
424
- expectEqual ( destPtr [ 5 ] , 0xFF )
425
-
426
- // Copy from offset 9. Skips the first two regions and the first byte of the third
427
- destPtr [ 2 ] = 0xFF
428
- destPtr [ 3 ] = 0xFF
429
- destPtr [ 4 ] = 0xFF
430
- destPtr [ 5 ] = 0xFF
431
- dispatchData. copyBytes ( to: destPtr, from: 9 ..< 11 )
432
- expectEqual ( destPtr [ 0 ] , 0x15 )
433
- expectEqual ( destPtr [ 1 ] , 0x16 )
434
- expectEqual ( destPtr [ 2 ] , 0xFF )
435
- expectEqual ( destPtr [ 3 ] , 0xFF )
436
- expectEqual ( destPtr [ 4 ] , 0xFF )
437
- expectEqual ( destPtr [ 5 ] , 0xFF )
438
-
439
- // Copy from offset 9, but only 1 byte. Ends before the end of the data
440
- destPtr [ 1 ] = 0xFF
441
- destPtr [ 2 ] = 0xFF
442
- destPtr [ 3 ] = 0xFF
443
- destPtr [ 4 ] = 0xFF
444
- destPtr [ 5 ] = 0xFF
445
- dispatchData. copyBytes ( to: destPtr, from: 9 ..< 10 )
446
- expectEqual ( destPtr [ 0 ] , 0x15 )
447
- expectEqual ( destPtr [ 1 ] , 0xFF )
448
- expectEqual ( destPtr [ 2 ] , 0xFF )
449
- expectEqual ( destPtr [ 3 ] , 0xFF )
450
- expectEqual ( destPtr [ 4 ] , 0xFF )
451
- expectEqual ( destPtr [ 5 ] , 0xFF )
452
-
453
- // Copy from offset 2, but only 1 byte. This copy is bounded within the
454
- // first region.
455
- destPtr [ 1 ] = 0xFF
456
- destPtr [ 2 ] = 0xFF
457
- destPtr [ 3 ] = 0xFF
458
- destPtr [ 4 ] = 0xFF
459
- destPtr [ 5 ] = 0xFF
460
- dispatchData. copyBytes ( to: destPtr, from: 2 ..< 3 )
461
- expectEqual ( destPtr [ 0 ] , 2 )
462
- expectEqual ( destPtr [ 1 ] , 0xFF )
463
- expectEqual ( destPtr [ 2 ] , 0xFF )
464
- expectEqual ( destPtr [ 3 ] , 0xFF )
465
- expectEqual ( destPtr [ 4 ] , 0xFF )
466
- expectEqual ( destPtr [ 5 ] , 0xFF )
467
- }
468
-
469
- DispatchAPI . test ( " DispatchData.buffers " ) {
470
- let bytes = [ UInt8 ( 0 ) , UInt8 ( 1 ) , UInt8 ( 2 ) , UInt8 ( 2 ) ]
471
- var ptr = UnsafeBufferPointer < UInt8 > ( start: bytes, count: bytes. count)
472
- var data = DispatchData ( bytes: ptr)
473
- expectEqual ( bytes. count, data. count)
474
- for i in 0 ..< data. count {
475
- expectEqual ( data [ i] , bytes [ i] )
476
- }
477
-
478
- data = DispatchData ( bytesNoCopy: ptr, deallocator: . custom( nil , { } ) )
479
- expectEqual ( bytes. count, data. count)
480
- for i in 0 ..< data. count {
481
- expectEqual ( data [ i] , bytes [ i] )
482
- }
483
-
484
- ptr = UnsafeBufferPointer < UInt8 > ( start: nil , count: 0 )
485
- data = DispatchData ( bytes: ptr)
486
- expectEqual ( data. count, 0 )
487
-
488
- data = DispatchData ( bytesNoCopy: ptr, deallocator: . custom( nil , { } ) )
489
- expectEqual ( data. count, 0 )
490
- }
491
-
492
- DispatchAPI . test ( " DispatchData.bufferUnsafeRawBufferPointer " ) {
493
- let bytes = [ UInt8 ( 0 ) , UInt8 ( 1 ) , UInt8 ( 2 ) , UInt8 ( 2 ) ]
494
- var ptr = UnsafeRawBufferPointer ( start: bytes, count: bytes. count)
495
- var data = DispatchData ( bytes: ptr)
496
- expectEqual ( bytes. count, data. count)
497
- for i in 0 ..< data. count {
498
- expectEqual ( data [ i] , bytes [ i] )
499
- }
500
-
501
- data = DispatchData ( bytesNoCopy: ptr, deallocator: . custom( nil , { } ) )
502
- expectEqual ( bytes. count, data. count)
503
- for i in 0 ..< data. count {
504
- expectEqual ( data [ i] , bytes [ i] )
505
- }
506
-
507
- ptr = UnsafeRawBufferPointer ( start: nil , count: 0 )
508
- data = DispatchData ( bytes: ptr)
509
- expectEqual ( data. count, 0 )
510
-
511
- data = DispatchData ( bytesNoCopy: ptr, deallocator: . custom( nil , { } ) )
512
- expectEqual ( data. count, 0 )
513
- }
514
-
515
180
DispatchAPI . test ( " DispatchIO.initRelativePath " ) {
516
181
let q = DispatchQueue ( label: " initRelativePath queue " )
517
182
let chan = DispatchIO ( type: . random, path: " _REL_PATH_ " , oflag: O_RDONLY, mode: 0 , queue: q, cleanupHandler: { ( error) in } )
0 commit comments