mirror of
https://github.com/fluencelabs/tendermint
synced 2025-04-24 22:32:15 +00:00
60 lines
1.6 KiB
Go
60 lines
1.6 KiB
Go
|
package types
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
"github.com/tendermint/tendermint/types/proto3"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
"github.com/golang/protobuf/proto"
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
func TestProto3Compatibility(t *testing.T) {
|
||
|
// TODO(ismail): table tests instead...
|
||
|
tm, err := time.Parse("Mon Jan 2 15:04:05 -0700 MST 2006", "Mon Jan 2 15:04:05 -0700 MST 2006")
|
||
|
assert.NoError(t, err)
|
||
|
|
||
|
pbHeader := proto3.Header{
|
||
|
ChainID: "cosmos",
|
||
|
Height:150,
|
||
|
Time: &proto3.Timestamp{Seconds:tm.Unix(), Nanos:int32(tm.Nanosecond())},
|
||
|
NumTxs: 7,
|
||
|
LastBlockID: &proto3.BlockID{
|
||
|
Hash: []byte("some serious hashing"),
|
||
|
PartsHeader:&proto3.PartSetHeader{
|
||
|
Total: 8,
|
||
|
Hash: []byte("some more serious hashing"),
|
||
|
},
|
||
|
},
|
||
|
TotalTxs: 100,
|
||
|
LastCommitHash: []byte("commit hash"),
|
||
|
DataHash: []byte("data hash"),
|
||
|
ValidatorsHash:[]byte("validators hash"),
|
||
|
|
||
|
}
|
||
|
// TODO(ismail): add another test where parts are missing (to see if default values are treated equiv.)
|
||
|
aminoHeader := Header{
|
||
|
ChainID: "cosmos",
|
||
|
Height:150,
|
||
|
Time: tm,
|
||
|
NumTxs: 7,
|
||
|
LastBlockID: BlockID{
|
||
|
Hash: []byte("some serious hashing"),
|
||
|
PartsHeader: PartSetHeader{
|
||
|
Total: 8,
|
||
|
Hash: []byte("some more serious hashing"),
|
||
|
},
|
||
|
},
|
||
|
TotalTxs: 100,
|
||
|
LastCommitHash: []byte("commit hash"),
|
||
|
DataHash: []byte("data hash"),
|
||
|
ValidatorsHash:[]byte("validators hash"),
|
||
|
}
|
||
|
ab, err := cdc.MarshalBinaryBare(aminoHeader)
|
||
|
assert.NoError(t, err, "unexpected error")
|
||
|
|
||
|
pb, err := proto.Marshal(&pbHeader)
|
||
|
assert.NoError(t, err, "unexpected error")
|
||
|
// This works:
|
||
|
assert.Equal(t, ab, pb, "encoding doesn't match")
|
||
|
}
|