Skip to content

Commit

Permalink
fix: intermittent failure
Browse files Browse the repository at this point in the history
  • Loading branch information
Woosang Son committed Nov 2, 2020
1 parent fd12622 commit d292dc7
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 21 deletions.
32 changes: 14 additions & 18 deletions privval/signer_client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ type signerTestCase struct {
signerServer *SignerServer
}

func getSignerTestCases(t *testing.T, start bool) []signerTestCase {
func getSignerTestCases(t *testing.T) []signerTestCase {
testCases := make([]signerTestCase, 0)

// Get test cases for each possible dialer (DialTCP / DialUnix / etc)
Expand All @@ -35,10 +35,8 @@ func getSignerTestCases(t *testing.T, start bool) []signerTestCase {
require.NoError(t, err)
ss := NewSignerServer(sd, chainID, mockPV)

if start {
err = ss.Start()
require.NoError(t, err)
}
err = ss.Start()
require.NoError(t, err)

tc := signerTestCase{
chainID: chainID,
Expand All @@ -54,7 +52,7 @@ func getSignerTestCases(t *testing.T, start bool) []signerTestCase {
}

func TestSignerClose(t *testing.T) {
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
err := tc.signerClient.Close()
assert.NoError(t, err)

Expand All @@ -64,7 +62,7 @@ func TestSignerClose(t *testing.T) {
}

func TestSignerPing(t *testing.T) {
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
defer tc.signerServer.Stop()
defer tc.signerClient.Close()

Expand All @@ -74,7 +72,7 @@ func TestSignerPing(t *testing.T) {
}

func TestSignerGetPubKey(t *testing.T) {
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
defer tc.signerServer.Stop()
defer tc.signerClient.Close()

Expand All @@ -96,7 +94,7 @@ func TestSignerGetPubKey(t *testing.T) {
}

func TestSignerProposal(t *testing.T) {
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
ts := time.Now()
want := &types.Proposal{Timestamp: ts}
have := &types.Proposal{Timestamp: ts}
Expand All @@ -113,7 +111,7 @@ func TestSignerProposal(t *testing.T) {

func TestSignerGenerateVRFProof(t *testing.T) {
message := []byte("hello, world")
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
defer tc.signerServer.Stop()
defer tc.signerClient.Close()

Expand All @@ -127,7 +125,7 @@ func TestSignerGenerateVRFProof(t *testing.T) {
}

func TestSignerVote(t *testing.T) {
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
ts := time.Now()
want := &types.Vote{Timestamp: ts, Type: types.PrecommitType}
have := &types.Vote{Timestamp: ts, Type: types.PrecommitType}
Expand All @@ -143,7 +141,7 @@ func TestSignerVote(t *testing.T) {
}

func TestSignerVoteResetDeadline(t *testing.T) {
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
ts := time.Now()
want := &types.Vote{Timestamp: ts, Type: types.PrecommitType}
have := &types.Vote{Timestamp: ts, Type: types.PrecommitType}
Expand All @@ -169,7 +167,7 @@ func TestSignerVoteResetDeadline(t *testing.T) {
}

func TestSignerVoteKeepAlive(t *testing.T) {
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
ts := time.Now()
want := &types.Vote{Timestamp: ts, Type: types.PrecommitType}
have := &types.Vote{Timestamp: ts, Type: types.PrecommitType}
Expand All @@ -194,7 +192,7 @@ func TestSignerVoteKeepAlive(t *testing.T) {
}

func TestSignerSignProposalErrors(t *testing.T) {
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
// Replace service with a mock that always fails
tc.signerServer.privVal = types.NewErroringMockPV()
tc.mockPV = types.NewErroringMockPV()
Expand All @@ -216,7 +214,7 @@ func TestSignerSignProposalErrors(t *testing.T) {
}

func TestSignerSignVoteErrors(t *testing.T) {
for _, tc := range getSignerTestCases(t, true) {
for _, tc := range getSignerTestCases(t) {
ts := time.Now()
vote := &types.Vote{Timestamp: ts, Type: types.PrecommitType}

Expand Down Expand Up @@ -263,13 +261,11 @@ func brokenHandler(privVal types.PrivValidator, request SignerMessage, chainID s
}

func TestSignerUnexpectedResponse(t *testing.T) {
for _, tc := range getSignerTestCases(t, false) {
// this should be executed before SignerServer starts to avoid race condition
for _, tc := range getSignerTestCases(t) {
tc.signerServer.privVal = types.NewMockPV()
tc.mockPV = types.NewMockPV()

tc.signerServer.SetRequestHandler(brokenHandler)
tc.signerServer.Start()

defer tc.signerServer.Stop()
defer tc.signerClient.Close()
Expand Down
4 changes: 1 addition & 3 deletions types/priv_validator.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import (
"errors"
"fmt"

"github.com/tendermint/tendermint/crypto/composite"

"github.com/tendermint/tendermint/crypto"
"github.com/tendermint/tendermint/crypto/ed25519"
)
Expand Down Expand Up @@ -62,7 +60,7 @@ type MockPV struct {
}

func NewMockPV() MockPV {
return MockPV{composite.GenPrivKey(), false, false}
return MockPV{ed25519.GenPrivKey(), false, false}
}

// NewMockPVWithParams allows one to create a MockPV instance, but with finer
Expand Down

0 comments on commit d292dc7

Please sign in to comment.