needs tests/harness lib/psrs io/log mem/logroll testbegin 1 LOW createlogevent TEST1 2 MEDIUM createlogevent TEST2 3 HIGH createlogevent TEST3 : #lrin ( lri nargs "..." -- ) over #true dip 4+ | 1+ 0 do @+ n< #eq loop drop ; : #lri ( lri "..." -- ) dup #true dup event nargs #lrin ; \test create log roller and add item 2 2 newlogroll const mylr mylr logcnt 0 #eq 42 TEST1 mylr logroll TEST1 #eq 42 #eq mylr logcnt 1 #eq 0 mylr idx>item #lri TEST1 42 \test add a second item 43 44 TEST2 mylr logroll TEST2 #eq 44 #eq 43 #eq mylr logcnt 2 #eq 0 mylr idx>item #lri TEST1 42 1 mylr idx>item #lri TEST2 44 43 \test rollover 45 TEST1 mylr logroll TEST1 #eq 45 #eq \ rolled over, overwrite previous 1st mylr logcnt 3 #eq 1 mylr idx>item #lri TEST2 44 43 2 mylr idx>item #lri TEST1 45 \ What if we ask for index 0? we get the new item 0 mylr idx>item #lri TEST1 45 \test truncate outside-capacity args 46 47 48 TEST3 mylr logroll TEST3 #eq 48 #eq 47 #eq 46 #eq 49 50 51 TEST3 mylr logroll TEST3 #eq 51 #eq 50 #eq 49 #eq mylr logcnt 5 #eq 3 mylr idx>item 2 #lrin TEST3 48 47 4 mylr idx>item 2 #lrin TEST3 51 50 \test .logroll \ We don't assert anything, just run the thing -1 mylr .logroll testend