|
@ -0,0 +1,32 @@ |
|
|
|
|
|
package consensus_test |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
|
"encoding/hex" |
|
|
|
|
|
"math" |
|
|
|
|
|
"testing" |
|
|
|
|
|
|
|
|
|
|
|
"github.com/gogo/protobuf/proto" |
|
|
|
|
|
"github.com/stretchr/testify/require" |
|
|
|
|
|
|
|
|
|
|
|
tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" |
|
|
|
|
|
tmproto "github.com/tendermint/tendermint/proto/tendermint/types" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
func TestHasVoteVector(t *testing.T) { |
|
|
|
|
|
testCases := []struct { |
|
|
|
|
|
msg tmcons.HasVote |
|
|
|
|
|
expBytes string |
|
|
|
|
|
}{ |
|
|
|
|
|
{tmcons.HasVote{1, 3, tmproto.PrevoteType, 1}, "3a080801100318012001"}, |
|
|
|
|
|
{tmcons.HasVote{2, 2, tmproto.PrecommitType, 2}, "3a080802100218022002"}, |
|
|
|
|
|
{tmcons.HasVote{math.MaxInt64, math.MaxInt32, tmproto.ProposalType, math.MaxInt32}, |
|
|
|
|
|
"3a1808ffffffffffffffff7f10ffffffff07182020ffffffff07"}, |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for i, tc := range testCases { |
|
|
|
|
|
msg := tmcons.Message{&tmcons.Message_HasVote{HasVote: &tc.msg}} |
|
|
|
|
|
bz, err := proto.Marshal(&msg) |
|
|
|
|
|
require.NoError(t, err) |
|
|
|
|
|
require.Equal(t, tc.expBytes, hex.EncodeToString(bz), "test vector failed", i) |
|
|
|
|
|
} |
|
|
|
|
|
} |