@@ -27,12 +27,12 @@ class FileIOTests: XCTestCase {
27
27
let router = Router ( )
28
28
router. get ( " test.jpg " ) { _, context -> Response in
29
29
let fileIO = FileIO ( threadPool: . singleton)
30
- let body = try await fileIO. loadFile ( path: " test .jpg" , context: context)
30
+ let body = try await fileIO. loadFile ( path: " testReadFileIO .jpg" , context: context)
31
31
return . init( status: . ok, headers: [ : ] , body: body)
32
32
}
33
33
let buffer = Self . randomBuffer ( size: 320_003 )
34
34
let data = Data ( buffer: buffer)
35
- let fileURL = URL ( fileURLWithPath: " test .jpg" )
35
+ let fileURL = URL ( fileURLWithPath: " testReadFileIO .jpg" )
36
36
XCTAssertNoThrow ( try data. write ( to: fileURL) )
37
37
defer { XCTAssertNoThrow ( try FileManager . default. removeItem ( at: fileURL) ) }
38
38
@@ -45,6 +45,31 @@ class FileIOTests: XCTestCase {
45
45
}
46
46
}
47
47
48
+ func testReadMultipleFilesOnSameConnection( ) async throws {
49
+ let router = Router ( )
50
+ router. get ( " test.jpg " ) { _, context -> Response in
51
+ let fileIO = FileIO ( threadPool: . singleton)
52
+ let body = try await fileIO. loadFile ( path: " testReadMultipleFilesOnSameConnection.jpg " , context: context)
53
+ return . init( status: . ok, headers: [ : ] , body: body)
54
+ }
55
+ let buffer = Self . randomBuffer ( size: 54003 )
56
+ let data = Data ( buffer: buffer)
57
+ let fileURL = URL ( fileURLWithPath: " testReadMultipleFilesOnSameConnection.jpg " )
58
+ XCTAssertNoThrow ( try data. write ( to: fileURL) )
59
+ defer { XCTAssertNoThrow ( try FileManager . default. removeItem ( at: fileURL) ) }
60
+
61
+ let app = Application ( responder: router. buildResponder ( ) )
62
+
63
+ try await app. test ( . live) { client in
64
+ try await client. execute ( uri: " /test.jpg " , method: . get) { response in
65
+ XCTAssertEqual ( response. body, buffer)
66
+ }
67
+ try await client. execute ( uri: " /test.jpg " , method: . get) { response in
68
+ XCTAssertEqual ( response. body, buffer)
69
+ }
70
+ }
71
+ }
72
+
48
73
func testWrite( ) async throws {
49
74
let filename = " testWrite.txt "
50
75
let router = Router ( )
0 commit comments