@@ -970,10 +970,10 @@ mod tests {
970970 assert_eq ! ( global. data, values, "Data mismatch" ) ;
971971 for id in values. keys ( ) {
972972 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+ }
977977 for ( i, ( event, _) ) in log. iter ( ) . enumerate ( ) {
978978 assert_eq ! (
979979 * event,
@@ -1322,6 +1322,193 @@ mod tests {
13221322 . expect ( "Test failed" ) ;
13231323 }
13241324
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+
13251512 #[ test_strategy:: proptest]
13261513 fn test_counters_manager_proptest_fs ( entries : Vec < ( u64 , u128 ) > ) {
13271514 let dir = tempfile:: tempdir ( ) . unwrap ( ) ;
0 commit comments