package types import ( "testing" ) var testProposal = &Proposal{ Height: 12345, Round: 23456, BlockPartsHeader: PartSetHeader{111, []byte("blockparts")}, POLRound: -1, } func TestProposalSignable(t *testing.T) { signBytes := SignBytes("test_chain_id", testProposal) signStr := string(signBytes) expected := `{"chain_id":"test_chain_id","proposal":{"block_parts_header":{"hash":"626C6F636B7061727473","total":111},"height":12345,"pol_block_id":{},"pol_round":-1,"round":23456}}` if signStr != expected { t.Errorf("Got unexpected sign string for Proposal. Expected:\n%v\nGot:\n%v", expected, signStr) } } func BenchmarkProposalWriteSignBytes(b *testing.B) { for i := 0; i < b.N; i++ { SignBytes("test_chain_id", testProposal) } } func BenchmarkProposalSign(b *testing.B) { privVal := GenPrivValidator() for i := 0; i < b.N; i++ { privVal.Sign(SignBytes("test_chain_id", testProposal)) } } func BenchmarkProposalVerifySignature(b *testing.B) { signBytes := SignBytes("test_chain_id", testProposal) privVal := GenPrivValidator() signature := privVal.Sign(signBytes) pubKey := privVal.PubKey for i := 0; i < b.N; i++ { pubKey.VerifyBytes(SignBytes("test_chain_id", testProposal), signature) } }