@@ -183,44 +183,86 @@ struct BackoffComplianceTestVector theBackoffComplianceTestVector[] = {
183
183
{
184
184
.sendCount = 0 ,
185
185
.backoffBase = System::Clock::Timeout (300 ),
186
- .backoffMin = System::Clock::Timeout (300 ),
187
- .backoffMax = System::Clock::Timeout (375 ),
186
+ .backoffMin = System::Clock::Timeout (330 ),
187
+ .backoffMax = System::Clock::Timeout (413 ),
188
188
},
189
189
{
190
190
.sendCount = 1 ,
191
191
.backoffBase = System::Clock::Timeout (300 ),
192
- .backoffMin = System::Clock::Timeout (300 ),
193
- .backoffMax = System::Clock::Timeout (375 ),
192
+ .backoffMin = System::Clock::Timeout (330 ),
193
+ .backoffMax = System::Clock::Timeout (413 ),
194
194
},
195
195
{
196
196
.sendCount = 2 ,
197
197
.backoffBase = System::Clock::Timeout (300 ),
198
- .backoffMin = System::Clock::Timeout (480 ),
199
- .backoffMax = System::Clock::Timeout (600 ),
198
+ .backoffMin = System::Clock::Timeout (528 ),
199
+ .backoffMax = System::Clock::Timeout (660 ),
200
200
},
201
201
{
202
202
.sendCount = 3 ,
203
203
.backoffBase = System::Clock::Timeout (300 ),
204
- .backoffMin = System::Clock::Timeout (768 ),
205
- .backoffMax = System::Clock::Timeout (960 ),
204
+ .backoffMin = System::Clock::Timeout (844 ),
205
+ .backoffMax = System::Clock::Timeout (1057 ),
206
206
},
207
207
{
208
208
.sendCount = 4 ,
209
209
.backoffBase = System::Clock::Timeout (300 ),
210
- .backoffMin = System::Clock::Timeout (1228 ),
211
- .backoffMax = System::Clock::Timeout (1536 ),
210
+ .backoffMin = System::Clock::Timeout (1351 ),
211
+ .backoffMax = System::Clock::Timeout (1690 ),
212
212
},
213
213
{
214
214
.sendCount = 5 ,
215
215
.backoffBase = System::Clock::Timeout (300 ),
216
- .backoffMin = System::Clock::Timeout (1966 ),
217
- .backoffMax = System::Clock::Timeout (2458 ),
216
+ .backoffMin = System::Clock::Timeout (2162 ),
217
+ .backoffMax = System::Clock::Timeout (2704 ),
218
218
},
219
219
{
220
220
.sendCount = 6 ,
221
221
.backoffBase = System::Clock::Timeout (300 ),
222
- .backoffMin = System::Clock::Timeout (1966 ),
223
- .backoffMax = System::Clock::Timeout (2458 ),
222
+ .backoffMin = System::Clock::Timeout (2162 ),
223
+ .backoffMax = System::Clock::Timeout (2704 ),
224
+ },
225
+ {
226
+ .sendCount = 0 ,
227
+ .backoffBase = System::Clock::Timeout (4000 ),
228
+ .backoffMin = System::Clock::Timeout (4400 ),
229
+ .backoffMax = System::Clock::Timeout (5500 ),
230
+ },
231
+ {
232
+ .sendCount = 1 ,
233
+ .backoffBase = System::Clock::Timeout (4000 ),
234
+ .backoffMin = System::Clock::Timeout (4400 ),
235
+ .backoffMax = System::Clock::Timeout (5500 ),
236
+ },
237
+ {
238
+ .sendCount = 2 ,
239
+ .backoffBase = System::Clock::Timeout (4000 ),
240
+ .backoffMin = System::Clock::Timeout (7040 ),
241
+ .backoffMax = System::Clock::Timeout (8800 ),
242
+ },
243
+ {
244
+ .sendCount = 3 ,
245
+ .backoffBase = System::Clock::Timeout (4000 ),
246
+ .backoffMin = System::Clock::Timeout (11264 ),
247
+ .backoffMax = System::Clock::Timeout (14081 ),
248
+ },
249
+ {
250
+ .sendCount = 4 ,
251
+ .backoffBase = System::Clock::Timeout (4000 ),
252
+ .backoffMin = System::Clock::Timeout (18022 ),
253
+ .backoffMax = System::Clock::Timeout (22529 ),
254
+ },
255
+ {
256
+ .sendCount = 5 ,
257
+ .backoffBase = System::Clock::Timeout (4000 ),
258
+ .backoffMin = System::Clock::Timeout (28835 ),
259
+ .backoffMax = System::Clock::Timeout (36045 ),
260
+ },
261
+ {
262
+ .sendCount = 6 ,
263
+ .backoffBase = System::Clock::Timeout (4000 ),
264
+ .backoffMin = System::Clock::Timeout (28835 ),
265
+ .backoffMax = System::Clock::Timeout (36045 ),
224
266
},
225
267
};
226
268
@@ -323,7 +365,7 @@ void CheckResendApplicationMessage(nlTestSuite * inSuite, void * inContext)
323
365
NL_TEST_ASSERT (inSuite, loopback.mDroppedMessageCount == 1 );
324
366
NL_TEST_ASSERT (inSuite, rm->TestGetCountRetransTable () == 1 );
325
367
326
- // Wait for the initial message to fail (should take 300-375ms )
368
+ // Wait for the initial message to fail (should take 330-413ms )
327
369
ctx.GetIOContext ().DriveIOUntil (1000_ms32, [&] { return loopback.mSentMessageCount >= 2 ; });
328
370
now = System::SystemClock ().GetMonotonicTimestamp ();
329
371
timeoutTime = now - startTime;
@@ -340,7 +382,7 @@ void CheckResendApplicationMessage(nlTestSuite * inSuite, void * inContext)
340
382
NL_TEST_ASSERT (inSuite, loopback.mDroppedMessageCount == 2 );
341
383
NL_TEST_ASSERT (inSuite, rm->TestGetCountRetransTable () == 1 );
342
384
343
- // Wait for the 1st retry to fail (should take 300-375ms )
385
+ // Wait for the 1st retry to fail (should take 330-413ms )
344
386
ctx.GetIOContext ().DriveIOUntil (1000_ms32, [&] { return loopback.mSentMessageCount >= 3 ; });
345
387
now = System::SystemClock ().GetMonotonicTimestamp ();
346
388
timeoutTime = now - startTime;
@@ -357,7 +399,7 @@ void CheckResendApplicationMessage(nlTestSuite * inSuite, void * inContext)
357
399
NL_TEST_ASSERT (inSuite, loopback.mDroppedMessageCount == 3 );
358
400
NL_TEST_ASSERT (inSuite, rm->TestGetCountRetransTable () == 1 );
359
401
360
- // Wait for the 2nd retry to fail (should take 480-600msms )
402
+ // Wait for the 2nd retry to fail (should take 528-660ms )
361
403
ctx.GetIOContext ().DriveIOUntil (1000_ms32, [&] { return loopback.mSentMessageCount >= 4 ; });
362
404
now = System::SystemClock ().GetMonotonicTimestamp ();
363
405
timeoutTime = now - startTime;
@@ -374,8 +416,8 @@ void CheckResendApplicationMessage(nlTestSuite * inSuite, void * inContext)
374
416
NL_TEST_ASSERT (inSuite, loopback.mDroppedMessageCount == 4 );
375
417
NL_TEST_ASSERT (inSuite, rm->TestGetCountRetransTable () == 1 );
376
418
377
- // Wait for the 3rd retry to fail (should take 768-960ms )
378
- ctx.GetIOContext ().DriveIOUntil (1000_ms32 , [&] { return loopback.mSentMessageCount >= 5 ; });
419
+ // Wait for the 3rd retry to fail (should take 845-1056ms )
420
+ ctx.GetIOContext ().DriveIOUntil (1500_ms32 , [&] { return loopback.mSentMessageCount >= 5 ; });
379
421
now = System::SystemClock ().GetMonotonicTimestamp ();
380
422
timeoutTime = now - startTime;
381
423
ChipLogProgress (Test, " Attempt #4 Timeout : %d ms" , timeoutTime.count ());
@@ -1613,7 +1655,8 @@ void CheckGetBackoff(nlTestSuite * inSuite, void * inContext)
1613
1655
{
1614
1656
struct BackoffComplianceTestVector * test = &theBackoffComplianceTestVector[i];
1615
1657
System::Clock::Timeout backoff = ReliableMessageMgr::GetBackoff (test->backoffBase , test->sendCount );
1616
- ChipLogProgress (Test, " Backoff # %d: %" PRIu32, test->sendCount , (uint32_t ) backoff.count ());
1658
+ ChipLogProgress (Test, " Backoff base %" PRIu32 " # %d: %" PRIu32, test->backoffBase .count (), test->sendCount ,
1659
+ backoff.count ());
1617
1660
1618
1661
NL_TEST_ASSERT (inSuite, backoff >= test->backoffMin );
1619
1662
NL_TEST_ASSERT (inSuite, backoff <= test->backoffMax );
0 commit comments