1
0
mirror of https://github.com/fluencelabs/tendermint synced 2025-07-25 09:11:56 +00:00
Files
.circleci
.github
DOCKER
benchmarks
blockchain
cmd
config
consensus
docs
evidence
lite
client
main_test.go
provider.go
provider_test.go
errors
files
proxy
commit.go
doc.go
dynamic_certifier.go
dynamic_certifier_test.go
helpers.go
inquiring_certifier.go
inquiring_certifier_test.go
memprovider.go
performance_test.go
provider.go
provider_test.go
static_certifier.go
static_certifier_test.go
mempool
node
p2p
proxy
rpc
scripts
state
test
types
version
wire
.editorconfig
.gitignore
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Gopkg.lock
Gopkg.toml
LICENSE
Makefile
README.md
Vagrantfile
appveyor.yml
codecov.yml
tendermint/lite/client/provider_test.go

64 lines
1.6 KiB
Go
Raw Normal View History

2017-11-12 00:43:16 +00:00
package client
2017-10-24 12:34:36 +02:00
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
2017-11-09 17:37:18 -05:00
"github.com/tendermint/tendermint/lite"
liteErr "github.com/tendermint/tendermint/lite/errors"
2017-11-12 00:43:16 +00:00
rpcclient "github.com/tendermint/tendermint/rpc/client"
rpctest "github.com/tendermint/tendermint/rpc/test"
2017-12-10 20:43:58 -05:00
"github.com/tendermint/tendermint/types"
2017-10-24 12:34:36 +02:00
)
func TestProvider(t *testing.T) {
assert, require := assert.New(t), require.New(t)
cfg := rpctest.GetConfig()
rpcAddr := cfg.RPC.ListenAddress
2017-12-10 20:43:58 -05:00
genDoc, _ := types.GenesisDocFromFile(cfg.GenesisFile())
chainID := genDoc.ChainID
2017-11-12 00:43:16 +00:00
p := NewHTTPProvider(rpcAddr)
2017-10-24 12:34:36 +02:00
require.NotNil(t, p)
// let it produce some blocks
2017-11-12 00:43:16 +00:00
err := rpcclient.WaitForHeight(p.(*provider).node, 6, nil)
require.Nil(err)
2017-10-24 12:34:36 +02:00
// let's get the highest block
seed, err := p.LatestCommit()
require.Nil(err, "%+v", err)
sh := seed.Height()
vhash := seed.Header.ValidatorsHash
assert.True(sh < 5000)
// let's check this is valid somehow
assert.Nil(seed.ValidateBasic(chainID))
cert := lite.NewStaticCertifier(chainID, seed.Validators)
2017-10-24 12:34:36 +02:00
// historical queries now work :)
lower := sh - 5
seed, err = p.GetByHeight(lower)
assert.Nil(err, "%+v", err)
assert.Equal(lower, seed.Height())
// also get by hash (given the match)
seed, err = p.GetByHash(vhash)
require.Nil(err, "%+v", err)
require.Equal(vhash, seed.Header.ValidatorsHash)
err = cert.Certify(seed.Commit)
assert.Nil(err, "%+v", err)
// get by hash fails without match
seed, err = p.GetByHash([]byte("foobar"))
assert.NotNil(err)
2017-11-09 17:37:18 -05:00
assert.True(liteErr.IsCommitNotFoundErr(err))
2017-10-24 12:34:36 +02:00
// storing the seed silently ignored
err = p.StoreCommit(seed)
assert.Nil(err, "%+v", err)
}