@@ -970,10 +970,10 @@ mod tests {
970
970
assert_eq ! ( global. data, values, "Data mismatch" ) ;
971
971
for id in values. keys ( ) {
972
972
let log = global. log . get ( id) . unwrap ( ) ;
973
- assert ! (
974
- log . len ( ) % 2 == 0 ,
975
- "Log must contain alternating wakeup and shutdown events"
976
- ) ;
973
+ if log . len ( ) % 2 != 0 {
974
+ println ! ( "{:#?}" , log ) ;
975
+ panic ! ( "Log for entity {id} must contain an even number of events" ) ;
976
+ }
977
977
for ( i, ( event, _) ) in log. iter ( ) . enumerate ( ) {
978
978
assert_eq ! (
979
979
* event,
@@ -1322,6 +1322,193 @@ mod tests {
1322
1322
. expect ( "Test failed" ) ;
1323
1323
}
1324
1324
1325
+ #[ test]
1326
+ fn counter_manager_case_1 ( ) {
1327
+ let entries: Vec < ( u64 , u128 ) > = vec ! [
1328
+ (
1329
+ 18388365709074834514 ,
1330
+ 194444835943844072850826645853183303049 ,
1331
+ ) ,
1332
+ ( 960158425716839792 , 70550702232084465071825242386427394095 ) ,
1333
+ ( 3186873658602636868 , 148188033569534503124640136521127325068 ) ,
1334
+ (
1335
+ 15841980008467069742 ,
1336
+ 151174981689849463642221795624442563542 ,
1337
+ ) ,
1338
+ (
1339
+ 13023338767385866119 ,
1340
+ 193238684289181333005049821157294047398 ,
1341
+ ) ,
1342
+ ( 16098863205515154997 , 80978418781577370901253652214289107284 ) ,
1343
+ (
1344
+ 15494567123826916198 ,
1345
+ 155627092752672738120697133860680193469 ,
1346
+ ) ,
1347
+ ( 5977791771239323572 , 123472069275349355161383651481886216632 ) ,
1348
+ (
1349
+ 13052414105389926722 ,
1350
+ 131961256616178196923794330816338585046 ,
1351
+ ) ,
1352
+ ( 3265887016396946394 , 310496101037658730275516655380984358257 ) ,
1353
+ ( 6225591563791670942 , 286677436984807113590349457123804595045 ) ,
1354
+ ( 7719654970290070575 , 261360661842631502732458498326060575764 ) ,
1355
+ ( 16346812062252468634 , 20400716043115856216887689562958795320 ) ,
1356
+ ( 14895994802127672851 , 65044937087750427440151725121831729492 ) ,
1357
+ (
1358
+ 13867149684135690908 ,
1359
+ 251366416673854856023601420456388852782 ,
1360
+ ) ,
1361
+ ( 13198762185366773363 , 16049497253389531856433290782978461866 ) ,
1362
+ ( 15662018632505153162 , 80545892061421306362192535611401208653 ) ,
1363
+ (
1364
+ 10904741085833535475 ,
1365
+ 317619745773233937506743252527124191472 ,
1366
+ ) ,
1367
+ ( 9659369546555131509 , 320745667028802630937237317954626404036 ) ,
1368
+ ( 9587720266200277507 , 53717910536324979289331387490265657851 ) ,
1369
+ ( 4520474546171085081 , 167298150261458948825809210629580417056 ) ,
1370
+ ( 16317689018231234032 , 56904692996624675090815630807576954277 ) ,
1371
+ ( 1145020483821164407 , 62208025549090848844487296478186250150 ) ,
1372
+ ( 12275840731881721168 , 91306991379847803048964981673487745749 ) ,
1373
+ ( 4420042860659089062 , 273964008846252634637821526029408158951 ) ,
1374
+ ( 6122064752200521014 , 318781380881508640367600316004018858292 ) ,
1375
+ (
1376
+ 18331791613663867073 ,
1377
+ 244797279528173449608649865877521898679 ,
1378
+ ) ,
1379
+ (
1380
+ 12536131143448721128 ,
1381
+ 118936654309826194076792135199593582814 ,
1382
+ ) ,
1383
+ (
1384
+ 10871411965855657987 ,
1385
+ 217312065385902682099626586116718936639 ,
1386
+ ) ,
1387
+ (
1388
+ 10961019520920546084 ,
1389
+ 194969590260788153365214695605968172735 ,
1390
+ ) ,
1391
+ ( 465341043682902302 , 313210447970957224597900277640449786169 ) ,
1392
+ ( 1930531913153049005 , 191839680217418490007545636458005832918 ) ,
1393
+ ( 17610861271281749389 , 2158112867473280423584106075388203148 ) ,
1394
+ ( 7152124269848448741 , 136954811775819110432364454487364326065 ) ,
1395
+ ( 1568989979285654655 , 20222353298755466913838704346056341244 ) ,
1396
+ ( 7965349575514397114 , 289787046147370952383585129455974538147 ) ,
1397
+ ( 4190853641474855654 , 252661458083167852070830937806141596795 ) ,
1398
+ ( 15998503947870046493 , 64060435197012338872019450356958606700 ) ,
1399
+ ( 13026276258592007494 , 19335529647117235114474075201115024719 ) ,
1400
+ ( 8441510215020513967 , 280188261773078012965811787866560404361 ) ,
1401
+ (
1402
+ 10888572289604438016 ,
1403
+ 107801275926977255088182396292810389978 ,
1404
+ ) ,
1405
+ ( 8028792684930056950 , 279265463046144709574860584412295388880 ) ,
1406
+ (
1407
+ 16285632686692032678 ,
1408
+ 173211331899082901582219216760818084141 ,
1409
+ ) ,
1410
+ ( 4252535566180812551 , 26342932911822612391116163156475293693 ) ,
1411
+ (
1412
+ 13804628128928961483 ,
1413
+ 284154599974337978388128510231757620390 ,
1414
+ ) ,
1415
+ ( 8546188891118395704 , 10518169822941605468924627069322563371 ) ,
1416
+ ( 15103555168237341487 , 65242721972208308766038820838106150898 ) ,
1417
+ (
1418
+ 10178269157159463595 ,
1419
+ 192339869053417790279388173311883453342 ,
1420
+ ) ,
1421
+ ( 4581403777792509197 , 14776646444861423261575214657678462007 ) ,
1422
+ (
1423
+ 16380082972821908840 ,
1424
+ 171941200656585174471984020218050726276 ,
1425
+ ) ,
1426
+ ( 1264309960451701386 , 134493939272359117017871860428297927223 ) ,
1427
+ (
1428
+ 14979589892199220502 ,
1429
+ 111589155031018603387685907617392369538 ,
1430
+ ) ,
1431
+ ( 17242367228189069279 , 72930121541745954198212835929591900203 ) ,
1432
+ ( 8121456326821108294 , 66979609476744620710556910365293284684 ) ,
1433
+ ( 2007258142204162697 , 251687000354783335205647262458691353893 ) ,
1434
+ ( 8737832108509452949 , 220588935218057557435066308484665836550 ) ,
1435
+ ( 1633859723143576509 , 136307380230378890472597645690064879661 ) ,
1436
+ ( 3631531089628868939 , 117193189302995348875537780371743885092 ) ,
1437
+ ( 14116484475174217773 , 54047184398246577478804256478007223219 ) ,
1438
+ ( 3958875956249588345 , 245230852280065944767864702369745470693 ) ,
1439
+ (
1440
+ 13540877093555590901 ,
1441
+ 315784456112577256036745768678791135182 ,
1442
+ ) ,
1443
+ (
1444
+ 16806612096618910759 ,
1445
+ 249546776531613765982448526314333635625 ,
1446
+ ) ,
1447
+ ( 787606879345898885 , 106585693463551369746522944067316950687 ) ,
1448
+ ( 4600372411498679193 , 212195607965427065442095429056450131388 ) ,
1449
+ (
1450
+ 15549710434033886583 ,
1451
+ 123117317137788876226523772665571872625 ,
1452
+ ) ,
1453
+ ( 18351596054746942123 , 45300934307303895571243742711664551642 ) ,
1454
+ ( 4289295596982939716 , 57179935864702088014701622708597340262 ) ,
1455
+ (
1456
+ 14236340878952223471 ,
1457
+ 276513355195514407125503145808612698776 ,
1458
+ ) ,
1459
+ (
1460
+ 16793945091236936234 ,
1461
+ 225504874419954047826410211270129372771 ,
1462
+ ) ,
1463
+ ( 6083434966673351288 , 132608700674916922118081114178409918884 ) ,
1464
+ ( 8650928456447960764 , 224830460140536261415627615111659295798 ) ,
1465
+ ( 544098001581244681 , 23519946291190733604063394180239868939 ) ,
1466
+ ( 6677173915608753908 , 172822575779164355980943891119053877737 ) ,
1467
+ ( 9904411679706436478 , 305002806492672706404515108669905493060 ) ,
1468
+ ( 3748913669028317014 , 198508895764401149420178353122470259248 ) ,
1469
+ ( 18429857739493813163 , 52742680723713620788331716379318053621 ) ,
1470
+ (
1471
+ 16160446355791350386 ,
1472
+ 138122750568611844010694432995073272608 ,
1473
+ ) ,
1474
+ ( 6546381586950511182 , 211244543160814081913465334374927296227 ) ,
1475
+ ( 2141568463796935601 , 208339082504024808729178477691685775704 ) ,
1476
+ ( 1557540402694871065 , 123820668511543909640550604769940320362 ) ,
1477
+ ( 4806376387020260938 , 242198889246468758028422097703476517279 ) ,
1478
+ ( 10572989355971956281 , 10538572317690180019027649199957487191 ) ,
1479
+ ( 4419528985467303189 , 241717029481312211533043931115392103679 ) ,
1480
+ ( 6026123969772770806 , 107638168362307674120726354668199681855 ) ,
1481
+ ( 10446707069162381062 , 8055541720197104310969619867721024782 ) ,
1482
+ ( 5775673932884639633 , 78808623784784204136453081044300463180 ) ,
1483
+ ( 8334877772954168794 , 247863931114156722743273061049957344581 ) ,
1484
+ ( 3268873687286354543 , 295921729987362586985932430782633333103 ) ,
1485
+ ( 3966164288731105812 , 168025259063973884714536065035065597041 ) ,
1486
+ (
1487
+ 11203489126702094930 ,
1488
+ 202722625156888049503317726338728149715 ,
1489
+ ) ,
1490
+ ( 15630106992179578877 , 35009551135670394358942249653897229827 ) ,
1491
+ ( 8273535691491394488 , 109976597742540116974717569314107701591 ) ,
1492
+ ( 3805901298951698996 , 235306340537276700227769214923480868076 ) ,
1493
+ ( 2117742626710589122 , 327739111844587050291636958827184679871 ) ,
1494
+ (
1495
+ 15269331250753017373 ,
1496
+ 319720502694359881891904231590616597459 ,
1497
+ ) ,
1498
+ ( 6441260656891689190 , 21330291223001965237969254632976565895 ) ,
1499
+ ( 7256786238996167073 , 176897044696772200117671096478294494714 ) ,
1500
+ ( 12590622778405228523 , 79144381831870004849360854116364256296 ) ,
1501
+ ] ;
1502
+ let rt = tokio:: runtime:: Builder :: new_multi_thread ( )
1503
+ . build ( )
1504
+ . expect ( "Failed to create tokio runtime" ) ;
1505
+ rt. block_on ( async move {
1506
+ let db = mem:: MemDb :: new ( ) ;
1507
+ test_random ( db, & entries) . await
1508
+ } )
1509
+ . expect ( "Test failed" ) ;
1510
+ }
1511
+
1325
1512
#[ test_strategy:: proptest]
1326
1513
fn test_counters_manager_proptest_fs ( entries : Vec < ( u64 , u128 ) > ) {
1327
1514
let dir = tempfile:: tempdir ( ) . unwrap ( ) ;
0 commit comments