@@ -56,7 +56,8 @@ import Testing
56
56
#expect( state. lease ( streams: 1 ) == expectLeaseAction)
57
57
}
58
58
59
- func testStartupParkLeaseBeforeTimersRegistered( ) {
59
+ @available ( macOS 13 . 0 , iOS 16 . 0 , tvOS 16 . 0 , watchOS 9 . 0 , * )
60
+ @Test func testStartupParkLeaseBeforeTimersRegistered( ) {
60
61
let connectionID = 1
61
62
var state = TestConnectionState ( id: connectionID)
62
63
let connection = MockConnection ( id: connectionID)
@@ -83,7 +84,8 @@ import Testing
83
84
#expect( state. timerScheduled ( idleTimer, cancelContinuation: idleTimerCancellationToken) == idleTimerCancellationToken)
84
85
}
85
86
86
- func testStartupParkLeasePark( ) {
87
+ @available ( macOS 13 . 0 , iOS 16 . 0 , tvOS 16 . 0 , watchOS 9 . 0 , * )
88
+ @Test func testStartupParkLeasePark( ) {
87
89
let connectionID = 1
88
90
var state = TestConnectionState ( id: connectionID)
89
91
let connection = MockConnection ( id: connectionID)
@@ -118,7 +120,8 @@ import Testing
118
120
#expect( state. timerScheduled ( idleTimer, cancelContinuation: initialIdleTimerCancellationToken) == initialIdleTimerCancellationToken)
119
121
}
120
122
121
- func testStartupFailed( ) {
123
+ @available ( macOS 13 . 0 , iOS 16 . 0 , tvOS 16 . 0 , watchOS 9 . 0 , * )
124
+ @Test func testStartupFailed( ) {
122
125
let connectionID = 1
123
126
var state = TestConnectionState ( id: connectionID)
124
127
let firstBackoffTimer = state. failedToConnect ( )
@@ -152,13 +155,17 @@ import Testing
152
155
#expect( state. connected ( connection, maxStreams: 1 ) == . idle( availableStreams: 1 , newIdle: true ) )
153
156
}
154
157
155
- func testLeaseMultipleStreams( ) {
158
+ @available ( macOS 13 . 0 , iOS 16 . 0 , tvOS 16 . 0 , watchOS 9 . 0 , * )
159
+ @Test func testLeaseMultipleStreams( ) {
156
160
let connectionID = 1
157
161
var state = TestConnectionState ( id: connectionID)
158
162
let connection = MockConnection ( id: connectionID)
159
163
#expect( state. connected ( connection, maxStreams: 100 ) == . idle( availableStreams: 100 , newIdle: true ) )
160
164
let timers = state. parkConnection ( scheduleKeepAliveTimer: true , scheduleIdleTimeoutTimer: false )
161
- guard let keepAliveTimer = timers. first else { return XCTFail ( " Expected to get a keepAliveTimer " ) }
165
+ guard let keepAliveTimer = timers. first else {
166
+ Issue . record ( " Expected to get a keepAliveTimer " )
167
+ return
168
+ }
162
169
163
170
let keepAliveTimerCancellationToken = MockTimerCancellationToken ( keepAliveTimer)
164
171
#expect( state. timerScheduled ( keepAliveTimer, cancelContinuation: keepAliveTimerCancellationToken) == nil )
@@ -185,84 +192,93 @@ import Testing
185
192
#expect( state. release ( streams: 1 ) == . idle( availableStreams: 100 , newIdle: true ) )
186
193
}
187
194
188
- func testRunningKeepAliveReducesAvailableStreams( ) {
195
+ @available ( macOS 13 . 0 , iOS 16 . 0 , tvOS 16 . 0 , watchOS 9 . 0 , * )
196
+ @Test func testRunningKeepAliveReducesAvailableStreams( ) {
189
197
let connectionID = 1
190
198
var state = TestConnectionState ( id: connectionID)
191
199
let connection = MockConnection ( id: connectionID)
192
200
#expect( state. connected ( connection, maxStreams: 100 ) == . idle( availableStreams: 100 , newIdle: true ) )
193
201
let timers = state. parkConnection ( scheduleKeepAliveTimer: true , scheduleIdleTimeoutTimer: false )
194
- guard let keepAliveTimer = timers. first else { return XCTFail ( " Expected to get a keepAliveTimer " ) }
202
+ guard let keepAliveTimer = timers. first else {
203
+ Issue . record ( " Expected to get a keepAliveTimer " )
204
+ return
205
+ }
195
206
196
207
let keepAliveTimerCancellationToken = MockTimerCancellationToken ( keepAliveTimer)
197
- XCTAssertNil ( state. timerScheduled ( keepAliveTimer, cancelContinuation: keepAliveTimerCancellationToken) )
208
+ #expect ( state. timerScheduled ( keepAliveTimer, cancelContinuation: keepAliveTimerCancellationToken) == nil )
198
209
199
- XCTAssertEqual (
200
- state. runKeepAliveIfIdle ( reducesAvailableStreams: true ) ,
210
+ #expect (
211
+ state. runKeepAliveIfIdle ( reducesAvailableStreams: true ) ==
201
212
. init( connection: connection, keepAliveTimerCancellationContinuation: keepAliveTimerCancellationToken)
202
213
)
203
214
204
- XCTAssertEqual (
205
- state. lease ( streams: 30 ) ,
215
+ #expect (
216
+ state. lease ( streams: 30 ) ==
206
217
TestConnectionState . LeaseAction ( connection: connection, timersToCancel: [ ] , wasIdle: true )
207
218
)
208
219
209
- XCTAssertEqual ( state. release ( streams: 10 ) , . leased( availableStreams: 79 ) )
210
- XCTAssertEqual ( state. isAvailable, true )
211
- XCTAssertEqual (
212
- state. lease ( streams: 79 ) ,
220
+ #expect ( state. release ( streams: 10 ) == . leased( availableStreams: 79 ) )
221
+ #expect ( state. isAvailable)
222
+ #expect (
223
+ state. lease ( streams: 79 ) ==
213
224
TestConnectionState . LeaseAction ( connection: connection, timersToCancel: [ ] , wasIdle: false )
214
225
)
215
- XCTAssertEqual ( state. isAvailable, false )
216
- XCTAssertEqual ( state. keepAliveSucceeded ( ) , . leased( availableStreams: 1 ) )
217
- XCTAssertEqual ( state. isAvailable, true )
226
+ #expect ( ! state. isAvailable)
227
+ #expect ( state. keepAliveSucceeded ( ) == . leased( availableStreams: 1 ) )
228
+ #expect ( state. isAvailable)
218
229
}
219
230
220
- func testRunningKeepAliveDoesNotReduceAvailableStreams( ) {
231
+ @available ( macOS 13 . 0 , iOS 16 . 0 , tvOS 16 . 0 , watchOS 9 . 0 , * )
232
+ @Test func testRunningKeepAliveDoesNotReduceAvailableStreams( ) {
221
233
let connectionID = 1
222
234
var state = TestConnectionState ( id: connectionID)
223
235
let connection = MockConnection ( id: connectionID)
224
- XCTAssertEqual ( state. connected ( connection, maxStreams: 100 ) , . idle( availableStreams: 100 , newIdle: true ) )
236
+ #expect ( state. connected ( connection, maxStreams: 100 ) == . idle( availableStreams: 100 , newIdle: true ) )
225
237
let timers = state. parkConnection ( scheduleKeepAliveTimer: true , scheduleIdleTimeoutTimer: false )
226
- guard let keepAliveTimer = timers. first else { return XCTFail ( " Expected to get a keepAliveTimer " ) }
238
+ guard let keepAliveTimer = timers. first else {
239
+ Issue . record ( " Expected to get a keepAliveTimer " )
240
+ return
241
+ }
227
242
228
243
let keepAliveTimerCancellationToken = MockTimerCancellationToken ( keepAliveTimer)
229
- XCTAssertNil ( state. timerScheduled ( keepAliveTimer, cancelContinuation: keepAliveTimerCancellationToken) )
244
+ #expect ( state. timerScheduled ( keepAliveTimer, cancelContinuation: keepAliveTimerCancellationToken) == nil )
230
245
231
- XCTAssertEqual (
232
- state. runKeepAliveIfIdle ( reducesAvailableStreams: false ) ,
246
+ #expect (
247
+ state. runKeepAliveIfIdle ( reducesAvailableStreams: false ) ==
233
248
. init( connection: connection, keepAliveTimerCancellationContinuation: keepAliveTimerCancellationToken)
234
249
)
235
250
236
- XCTAssertEqual (
237
- state. lease ( streams: 30 ) ,
251
+ #expect (
252
+ state. lease ( streams: 30 ) ==
238
253
TestConnectionState . LeaseAction ( connection: connection, timersToCancel: [ ] , wasIdle: true )
239
254
)
240
255
241
- XCTAssertEqual ( state. release ( streams: 10 ) , . leased( availableStreams: 80 ) )
242
- XCTAssertEqual ( state. keepAliveSucceeded ( ) , . leased( availableStreams: 80 ) )
256
+ #expect ( state. release ( streams: 10 ) == . leased( availableStreams: 80 ) )
257
+ #expect ( state. keepAliveSucceeded ( ) == . leased( availableStreams: 80 ) )
243
258
}
244
259
245
- func testRunKeepAliveRacesAgainstIdleClose( ) {
260
+ @available ( macOS 13 . 0 , iOS 16 . 0 , tvOS 16 . 0 , watchOS 9 . 0 , * )
261
+ @Test func testRunKeepAliveRacesAgainstIdleClose( ) {
246
262
let connectionID = 1
247
263
var state = TestConnectionState ( id: connectionID)
248
264
let connection = MockConnection ( id: connectionID)
249
- XCTAssertEqual ( state. connected ( connection, maxStreams: 1 ) , . idle( availableStreams: 1 , newIdle: true ) )
265
+ #expect ( state. connected ( connection, maxStreams: 1 ) == . idle( availableStreams: 1 , newIdle: true ) )
250
266
let parkResult = state. parkConnection ( scheduleKeepAliveTimer: true , scheduleIdleTimeoutTimer: true )
251
267
guard let keepAliveTimer = parkResult. first, let idleTimer = parkResult. second else {
252
- return XCTFail ( " Expected to get two timers " )
268
+ Issue . record ( " Expected to get two timers " )
269
+ return
253
270
}
254
271
255
- XCTAssertEqual ( keepAliveTimer, . init( timerID: 0 , connectionID: connectionID, usecase: . keepAlive) )
256
- XCTAssertEqual ( idleTimer, . init( timerID: 1 , connectionID: connectionID, usecase: . idleTimeout) )
272
+ #expect ( keepAliveTimer == . init( timerID: 0 , connectionID: connectionID, usecase: . keepAlive) )
273
+ #expect ( idleTimer == . init( timerID: 1 , connectionID: connectionID, usecase: . idleTimeout) )
257
274
258
275
let keepAliveTimerCancellationToken = MockTimerCancellationToken ( keepAliveTimer)
259
276
let idleTimerCancellationToken = MockTimerCancellationToken ( idleTimer)
260
277
261
- XCTAssertNil ( state. timerScheduled ( keepAliveTimer, cancelContinuation: keepAliveTimerCancellationToken) )
262
- XCTAssertNil ( state. timerScheduled ( idleTimer, cancelContinuation: idleTimerCancellationToken) )
263
-
264
- XCTAssertEqual ( state. closeIfIdle ( ) , . init( connection: connection, previousConnectionState: . idle, cancelTimers: [ keepAliveTimerCancellationToken, idleTimerCancellationToken] , usedStreams: 0 , maxStreams: 1 , runningKeepAlive: false ) )
265
- XCTAssertEqual ( state. runKeepAliveIfIdle ( reducesAvailableStreams: true ) , . none)
278
+ #expect( state. timerScheduled ( keepAliveTimer, cancelContinuation: keepAliveTimerCancellationToken) == nil )
279
+ #expect( state. timerScheduled ( idleTimer, cancelContinuation: idleTimerCancellationToken) == nil )
266
280
281
+ #expect( state. closeIfIdle ( ) == . init( connection: connection, previousConnectionState: . idle, cancelTimers: [ keepAliveTimerCancellationToken, idleTimerCancellationToken] , usedStreams: 0 , maxStreams: 1 , runningKeepAlive: false ) )
282
+ #expect( state. runKeepAliveIfIdle ( reducesAvailableStreams: true ) == . none)
267
283
}
268
284
}
0 commit comments