github.com/prysmaticlabs/prysm@v1.4.4/validator/db/kv/graffiti_test.go (about) 1 package kv 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/prysmaticlabs/prysm/shared/hashutil" 8 "github.com/prysmaticlabs/prysm/shared/testutil/require" 9 ) 10 11 func TestStore_GraffitiOrderedIndex_ReadAndWrite(t *testing.T) { 12 ctx := context.Background() 13 db := setupDB(t, [][48]byte{}) 14 tests := []struct { 15 name string 16 want uint64 17 write uint64 18 fileHash [32]byte 19 }{ 20 { 21 name: "empty then write", 22 want: 0, 23 write: 15, 24 fileHash: hashutil.Hash([]byte("one")), 25 }, 26 { 27 name: "update with same file hash", 28 want: 15, 29 write: 20, 30 fileHash: hashutil.Hash([]byte("one")), 31 }, 32 { 33 name: "continued updates", 34 want: 20, 35 write: 21, 36 fileHash: hashutil.Hash([]byte("one")), 37 }, 38 { 39 name: "reset with new file hash", 40 want: 0, 41 write: 10, 42 fileHash: hashutil.Hash([]byte("two")), 43 }, 44 { 45 name: "read with new file hash", 46 want: 10, 47 fileHash: hashutil.Hash([]byte("two")), 48 }, 49 } 50 for _, tt := range tests { 51 t.Run(tt.name, func(t *testing.T) { 52 got, err := db.GraffitiOrderedIndex(ctx, tt.fileHash) 53 require.NoError(t, err) 54 require.DeepEqual(t, tt.want, got) 55 err = db.SaveGraffitiOrderedIndex(ctx, tt.write) 56 require.NoError(t, err) 57 }) 58 } 59 }