File tree Expand file tree Collapse file tree 2 files changed +45
-1
lines changed Expand file tree Collapse file tree 2 files changed +45
-1
lines changed Original file line number Diff line number Diff line change @@ -216,7 +216,41 @@ extension FileHandle {
216
216
}
217
217
218
218
internal static var _nulldeviceFileHandle : FileHandle = {
219
- return FileHandle ( forUpdatingAtPath: " /dev/null " ) !
219
+ class NullDevice : FileHandle {
220
+ override var availableData : Data {
221
+ return Data ( )
222
+ }
223
+
224
+ override func readDataToEndOfFile( ) -> Data {
225
+ return Data ( )
226
+ }
227
+
228
+ override func readData( ofLength length: Int ) -> Data {
229
+ return Data ( )
230
+ }
231
+
232
+ override func write( _ data: Data ) { }
233
+
234
+ override var offsetInFile : UInt64 {
235
+ return 0
236
+ }
237
+
238
+ override func seekToEndOfFile( ) -> UInt64 {
239
+ return 0
240
+ }
241
+
242
+ override func seek( toFileOffset offset: UInt64 ) { }
243
+
244
+ override func truncateFile( atOffset offset: UInt64 ) { }
245
+
246
+ override func synchronizeFile( ) { }
247
+
248
+ override func closeFile( ) { }
249
+
250
+ deinit { }
251
+ }
252
+
253
+ return NullDevice ( fileDescriptor: - 1 , closeOnDealloc: false )
220
254
} ( )
221
255
222
256
open class var nullDevice : FileHandle {
Original file line number Diff line number Diff line change @@ -43,8 +43,18 @@ class TestNSFileHandle : XCTestCase {
43
43
func test_nullDevice( ) {
44
44
let fh = FileHandle . nullDevice
45
45
46
+ XCTAssertEqual ( fh. fileDescriptor, - 1 )
47
+ fh. closeFile ( )
48
+ fh. seek ( toFileOffset: 10 )
49
+ XCTAssertEqual ( fh. offsetInFile, 0 )
50
+ XCTAssertEqual ( fh. seekToEndOfFile ( ) , 0 )
51
+ XCTAssertEqual ( fh. readData ( ofLength: 15 ) . count, 0 )
52
+ fh. synchronizeFile ( )
53
+
46
54
fh. write ( Data ( bytes: [ 1 , 2 ] ) )
55
+ fh. seek ( toFileOffset: 0 )
47
56
XCTAssertEqual ( fh. availableData. count, 0 )
57
+ fh. write ( Data ( bytes: [ 1 , 2 ] ) )
48
58
fh. seek ( toFileOffset: 0 )
49
59
XCTAssertEqual ( fh. readDataToEndOfFile ( ) . count, 0 )
50
60
}
You can’t perform that action at this time.
0 commit comments