github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/forensics/storage/util_test.go (about) 1 package storage 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/hyperledger/burrow/storage" 8 "github.com/stretchr/testify/assert" 9 dbm "github.com/tendermint/tm-db" 10 ) 11 12 func sendKVPair(ch chan<- KVPair, kvs []KVPair) { 13 for _, kv := range kvs { 14 ch <- kv 15 } 16 close(ch) 17 } 18 19 func collectIterator(it storage.KVIterator) KVPairs { 20 var kvp []KVPair 21 for it.Valid() { 22 kvp = append(kvp, KVPair{it.Key(), it.Value()}) 23 it.Next() 24 } 25 return kvp 26 } 27 28 func kvPairs(kvs ...string) KVPairs { 29 n := len(kvs) / 2 30 kvp := make([]KVPair, 0, n) 31 for i := 0; i < 2*n; i += 2 { 32 kvp = append(kvp, KVPair{[]byte(kvs[i]), []byte(kvs[i+1])}) 33 } 34 return kvp 35 } 36 37 func assertIteratorSorted(t *testing.T, it storage.KVIterator, reverse bool) { 38 prev := "" 39 for it.Valid() { 40 strKey := string(it.Key()) 41 t.Log(strKey, "=>", string(it.Value())) 42 if prev == "" { 43 prev = strKey 44 } 45 // Assert non-decreasing sequence of keys 46 if reverse { 47 assert.False(t, strings.Compare(prev, strKey) == -1) 48 } else { 49 assert.False(t, strings.Compare(prev, strKey) == 1) 50 } 51 prev = strKey 52 it.Next() 53 } 54 } 55 56 func checkItem(t *testing.T, itr dbm.Iterator, key []byte, value []byte) { 57 k, v := itr.Key(), itr.Value() 58 assert.Exactly(t, key, k) 59 assert.Exactly(t, value, v) 60 }