github.com/ava-labs/avalanchego@v1.11.11/database/encdb/db_test.go (about) 1 // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved. 2 // See the file LICENSE for licensing terms. 3 4 package encdb 5 6 import ( 7 "fmt" 8 "testing" 9 10 "github.com/stretchr/testify/require" 11 12 "github.com/ava-labs/avalanchego/database" 13 "github.com/ava-labs/avalanchego/database/dbtest" 14 "github.com/ava-labs/avalanchego/database/memdb" 15 ) 16 17 const testPassword = "lol totally a secure password" //nolint:gosec 18 19 func TestInterface(t *testing.T) { 20 for name, test := range dbtest.Tests { 21 t.Run(name, func(t *testing.T) { 22 unencryptedDB := memdb.New() 23 db, err := New([]byte(testPassword), unencryptedDB) 24 require.NoError(t, err) 25 26 test(t, db) 27 }) 28 } 29 } 30 31 func newDB(t testing.TB) database.Database { 32 unencryptedDB := memdb.New() 33 db, err := New([]byte(testPassword), unencryptedDB) 34 require.NoError(t, err) 35 return db 36 } 37 38 func FuzzKeyValue(f *testing.F) { 39 dbtest.FuzzKeyValue(f, newDB(f)) 40 } 41 42 func FuzzNewIteratorWithPrefix(f *testing.F) { 43 dbtest.FuzzNewIteratorWithPrefix(f, newDB(f)) 44 } 45 46 func FuzzNewIteratorWithStartAndPrefix(f *testing.F) { 47 dbtest.FuzzNewIteratorWithStartAndPrefix(f, newDB(f)) 48 } 49 50 func BenchmarkInterface(b *testing.B) { 51 for _, size := range dbtest.BenchmarkSizes { 52 keys, values := dbtest.SetupBenchmark(b, size[0], size[1], size[2]) 53 for name, bench := range dbtest.Benchmarks { 54 b.Run(fmt.Sprintf("encdb_%d_pairs_%d_keys_%d_values_%s", size[0], size[1], size[2], name), func(b *testing.B) { 55 bench(b, newDB(b), keys, values) 56 }) 57 } 58 } 59 }