state save/load test.

This commit is contained in:
Jae Kwon
2014-10-07 00:43:34 -07:00
parent b73b7a54c7
commit 08f86176fc
11 changed files with 99 additions and 15 deletions

View File

@ -1,9 +1,12 @@
package state
import (
. "github.com/tendermint/tendermint/blocks"
. "github.com/tendermint/tendermint/common"
. "github.com/tendermint/tendermint/config"
. "github.com/tendermint/tendermint/db"
"bytes"
"testing"
"time"
)
@ -38,9 +41,27 @@ func TestGenesisSaveLoad(t *testing.T) {
// Generate a state, save & load it.
s0 := randGenesisState(10, 5)
// Mutate the state to append one block.
block := &Block{Data: Data{Txs: []Tx{}}}
s0.AppendBlock(block)
// Figure out what the next state hashes should be.
s0ValsCopy := s0.Validators().Copy()
s0ValsCopy.IncrementAccum()
nextValidationStateHash := s0ValsCopy.Hash()
nextAccountStateHash := s0.accountBalances.Tree.Hash()
// Mutate the state to append one empty block.
block := &Block{
Header: Header{
Network: Config.Network,
Height: 1,
ValidationStateHash: nextValidationStateHash,
AccountStateHash: nextAccountStateHash,
},
Data: Data{
Txs: []Tx{},
},
}
err := s0.AppendBlock(block)
if err != nil {
t.Error("Error appending initial block:", err)
}
// Save s0, load s1.
commitTime := time.Now()
@ -53,7 +74,15 @@ func TestGenesisSaveLoad(t *testing.T) {
t.Error("CommitTime was not the same")
}
// Compare height & blockHash
// XXX
if s0.Height() != 1 {
t.Error("s0 Height should be 1, got", s0.Height())
}
if s0.Height() != s1.Height() {
t.Error("Height mismatch")
}
if !bytes.Equal(s0.BlockHash(), s1.BlockHash()) {
t.Error("BlockHash mismatch")
}
// Compare Validators
s0Vals := s0.Validators()
s1Vals := s1.Validators()