Browse Source

Fix race testing

pull/1347/head
Jae Kwon 7 years ago
parent
commit
d24e4cb821
3 changed files with 14 additions and 6 deletions
  1. +1
    -1
      consensus/replay_test.go
  2. +12
    -4
      types/block.go
  3. +1
    -1
      types/priv_validator/socket_test.go

+ 1
- 1
consensus/replay_test.go View File

@ -60,7 +60,7 @@ func startNewConsensusStateAndWaitForBlock(t *testing.T, lastBlockHeight int64,
bytes, _ := ioutil.ReadFile(cs.config.WalFile()) bytes, _ := ioutil.ReadFile(cs.config.WalFile())
// fmt.Printf("====== WAL: \n\r%s\n", bytes) // fmt.Printf("====== WAL: \n\r%s\n", bytes)
t.Logf("====== WAL: \n\r%s\n", bytes)
t.Logf("====== WAL: \n\r%X\n", bytes)
err := cs.Start() err := cs.Start()
require.NoError(t, err) require.NoError(t, err)


+ 12
- 4
types/block.go View File

@ -5,6 +5,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"strings" "strings"
"sync"
"time" "time"
cmn "github.com/tendermint/tmlibs/common" cmn "github.com/tendermint/tmlibs/common"
@ -15,6 +16,7 @@ import (
// Block defines the atomic unit of a Tendermint blockchain. // Block defines the atomic unit of a Tendermint blockchain.
// TODO: add Version byte // TODO: add Version byte
type Block struct { type Block struct {
mtx sync.Mutex
*Header `json:"header"` *Header `json:"header"`
*Data `json:"data"` *Data `json:"data"`
Evidence EvidenceData `json:"evidence"` Evidence EvidenceData `json:"evidence"`
@ -35,7 +37,7 @@ func MakeBlock(height int64, txs []Tx, commit *Commit) *Block {
Txs: txs, Txs: txs,
}, },
} }
block.FillHeader()
block.fillHeader()
return block return block
} }
@ -68,8 +70,8 @@ func (b *Block) ValidateBasic() error {
return nil return nil
} }
// FillHeader fills in any remaining header fields that are a function of the block data
func (b *Block) FillHeader() {
// fillHeader fills in any remaining header fields that are a function of the block data
func (b *Block) fillHeader() {
if b.LastCommitHash == nil { if b.LastCommitHash == nil {
b.LastCommitHash = b.LastCommit.Hash() b.LastCommitHash = b.LastCommit.Hash()
} }
@ -84,10 +86,16 @@ func (b *Block) FillHeader() {
// Hash computes and returns the block hash. // Hash computes and returns the block hash.
// If the block is incomplete, block hash is nil for safety. // If the block is incomplete, block hash is nil for safety.
func (b *Block) Hash() cmn.HexBytes { func (b *Block) Hash() cmn.HexBytes {
if b == nil {
return nil
}
b.mtx.Lock()
defer b.mtx.Unlock()
if b == nil || b.Header == nil || b.Data == nil || b.LastCommit == nil { if b == nil || b.Header == nil || b.Data == nil || b.LastCommit == nil {
return nil return nil
} }
b.FillHeader()
b.fillHeader()
return b.Header.Hash() return b.Header.Hash()
} }


+ 1
- 1
types/priv_validator/socket_test.go View File

@ -133,7 +133,7 @@ func TestSocketPVDeadline(t *testing.T) {
) )
) )
SocketPVConnDeadline(10 * time.Millisecond)(sc)
SocketPVConnDeadline(100 * time.Millisecond)(sc)
SocketPVConnWait(500 * time.Millisecond)(sc) SocketPVConnWait(500 * time.Millisecond)(sc)
go func(sc *SocketPV) { go func(sc *SocketPV) {


Loading…
Cancel
Save