From ed42f70248abea41bf68a099fb94346f2f4ac1e1 Mon Sep 17 00:00:00 2001 From: Ethan Buchman Date: Sat, 17 Dec 2016 13:57:37 -0500 Subject: [PATCH] types: benchmark WriteSignBytes --- types/proposal_test.go | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/types/proposal_test.go b/types/proposal_test.go index 1d8c62051..332da4fbc 100644 --- a/types/proposal_test.go +++ b/types/proposal_test.go @@ -4,14 +4,15 @@ import ( "testing" ) +var testProposal = &Proposal{ + Height: 12345, + Round: 23456, + BlockPartsHeader: PartSetHeader{111, []byte("blockparts")}, + POLRound: -1, +} + func TestProposalSignable(t *testing.T) { - proposal := &Proposal{ - Height: 12345, - Round: 23456, - BlockPartsHeader: PartSetHeader{111, []byte("blockparts")}, - POLRound: -1, - } - signBytes := SignBytes("test_chain_id", proposal) + 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":null,"pol_round":-1,"round":23456}}` @@ -19,3 +20,27 @@ func TestProposalSignable(t *testing.T) { 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) + } +}