mirror of
https://github.com/tendermint/tendermint.git
synced 2026-09-19 22:44:24 +00:00
* lite2: move AutoClient into Client Most of the users will want auto update feature, so it makes sense to move it into the Client itself, rather than having a separate abstraction (it makes the code cleaner, but introduces an extra thing the user will need to learn). Also, add `FirstTrustedHeight` func to Client to get first trusted height. * fix db store tests * separate examples for auto and manual clients * AutoUpdate tries to update to latest state NOT 1 header at a time * fix errors * lite2: make Logger an option remove SetLogger func * fix lite cmd * lite2: make concurrency assumptions explicit * fixes after my own review * no need for nextHeightFn sequence func will download intermediate headers * correct comment
77 lines
1.8 KiB
Go
77 lines
1.8 KiB
Go
package db
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
dbm "github.com/tendermint/tm-db"
|
|
|
|
"github.com/tendermint/tendermint/types"
|
|
)
|
|
|
|
func TestLast_FirstSignedHeaderHeight(t *testing.T) {
|
|
dbStore := New(dbm.NewMemDB(), "TestLast_FirstSignedHeaderHeight")
|
|
|
|
// Empty store
|
|
height, err := dbStore.LastSignedHeaderHeight()
|
|
require.NoError(t, err)
|
|
assert.EqualValues(t, -1, height)
|
|
|
|
height, err = dbStore.FirstSignedHeaderHeight()
|
|
require.NoError(t, err)
|
|
assert.EqualValues(t, -1, height)
|
|
|
|
// 1 key
|
|
err = dbStore.SaveSignedHeaderAndNextValidatorSet(
|
|
&types.SignedHeader{Header: &types.Header{Height: 1}}, &types.ValidatorSet{})
|
|
require.NoError(t, err)
|
|
|
|
height, err = dbStore.LastSignedHeaderHeight()
|
|
require.NoError(t, err)
|
|
assert.EqualValues(t, 1, height)
|
|
|
|
height, err = dbStore.FirstSignedHeaderHeight()
|
|
require.NoError(t, err)
|
|
assert.EqualValues(t, 1, height)
|
|
}
|
|
|
|
func Test_SaveSignedHeaderAndNextValidatorSet(t *testing.T) {
|
|
dbStore := New(dbm.NewMemDB(), "Test_SaveSignedHeaderAndNextValidatorSet")
|
|
|
|
// Empty store
|
|
h, err := dbStore.SignedHeader(1)
|
|
require.Error(t, err)
|
|
assert.Nil(t, h)
|
|
|
|
valSet, err := dbStore.ValidatorSet(2)
|
|
require.Error(t, err)
|
|
assert.Nil(t, valSet)
|
|
|
|
// 1 key
|
|
err = dbStore.SaveSignedHeaderAndNextValidatorSet(
|
|
&types.SignedHeader{Header: &types.Header{Height: 1}}, &types.ValidatorSet{})
|
|
require.NoError(t, err)
|
|
|
|
h, err = dbStore.SignedHeader(1)
|
|
require.NoError(t, err)
|
|
assert.NotNil(t, h)
|
|
|
|
valSet, err = dbStore.ValidatorSet(2)
|
|
require.NoError(t, err)
|
|
assert.NotNil(t, valSet)
|
|
|
|
// Empty store
|
|
err = dbStore.DeleteSignedHeaderAndNextValidatorSet(1)
|
|
require.NoError(t, err)
|
|
|
|
h, err = dbStore.SignedHeader(1)
|
|
require.Error(t, err)
|
|
assert.Nil(t, h)
|
|
|
|
valSet, err = dbStore.ValidatorSet(2)
|
|
require.Error(t, err)
|
|
assert.Nil(t, valSet)
|
|
}
|