|
|
- package files
-
- import (
- "os"
- "path/filepath"
- "testing"
-
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
-
- cmn "github.com/tendermint/tmlibs/common"
-
- "github.com/tendermint/tendermint/lite"
- )
-
- func tmpFile() string {
- suffix := cmn.RandStr(16)
- return filepath.Join(os.TempDir(), "fc-test-"+suffix)
- }
-
- func TestSerializeFullCommits(t *testing.T) {
- assert, require := assert.New(t), require.New(t)
-
- // some constants
- appHash := []byte("some crazy thing")
- chainID := "ser-ial"
- h := int64(25)
-
- // build a fc
- keys := lite.GenValKeys(5)
- vals := keys.ToValidators(10, 0)
- fc := keys.GenFullCommit(chainID, h, nil, vals, appHash, 0, 5)
-
- require.Equal(h, fc.Height())
- require.Equal(vals.Hash(), fc.ValidatorsHash())
-
- // try read/write with json
- jfile := tmpFile()
- defer os.Remove(jfile)
- jseed, err := LoadFullCommitJSON(jfile)
- assert.NotNil(err)
- err = SaveFullCommitJSON(fc, jfile)
- require.Nil(err)
- jseed, err = LoadFullCommitJSON(jfile)
- assert.Nil(err, "%+v", err)
- assert.Equal(h, jseed.Height())
- assert.Equal(vals.Hash(), jseed.ValidatorsHash())
-
- // try read/write with binary
- bfile := tmpFile()
- defer os.Remove(bfile)
- bseed, err := LoadFullCommit(bfile)
- assert.NotNil(err)
- err = SaveFullCommit(fc, bfile)
- require.Nil(err)
- bseed, err = LoadFullCommit(bfile)
- assert.Nil(err, "%+v", err)
- assert.Equal(h, bseed.Height())
- assert.Equal(vals.Hash(), bseed.ValidatorsHash())
-
- // make sure they don't read the other format (different)
- _, err = LoadFullCommit(jfile)
- assert.NotNil(err)
- _, err = LoadFullCommitJSON(bfile)
- assert.NotNil(err)
- }
|