forked from cerc-io/plugeth
422490d75c
- blockpool moves to its own package - uses errs pkg for its own coded errors - publicly settable config of params (time intervals and batchsizes) - test helpers in subpackage - optional TD in blocks used now to update peers chain info - major improvement in algorithm - fix fragility and sync/parallelisation bugs - implement status for reporting on sync status (peers/hashes/blocks etc) - several tests added and further corner cases covered
41 lines
1.9 KiB
Go
41 lines
1.9 KiB
Go
package blockpool
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/ethereum/go-ethereum/blockpool/test"
|
|
)
|
|
|
|
func TestBlockPoolConfig(t *testing.T) {
|
|
test.LogInit()
|
|
blockPool := &BlockPool{Config: &Config{}}
|
|
blockPool.Start()
|
|
c := blockPool.Config
|
|
test.CheckInt("BlockHashesBatchSize", c.BlockHashesBatchSize, blockHashesBatchSize, t)
|
|
test.CheckInt("BlockBatchSize", c.BlockBatchSize, blockBatchSize, t)
|
|
test.CheckInt("BlocksRequestRepetition", c.BlocksRequestRepetition, blocksRequestRepetition, t)
|
|
test.CheckInt("BlocksRequestMaxIdleRounds", c.BlocksRequestMaxIdleRounds, blocksRequestMaxIdleRounds, t)
|
|
test.CheckDuration("BlockHashesRequestInterval", c.BlockHashesRequestInterval, blockHashesRequestInterval, t)
|
|
test.CheckDuration("BlocksRequestInterval", c.BlocksRequestInterval, blocksRequestInterval, t)
|
|
test.CheckDuration("BlockHashesTimeout", c.BlockHashesTimeout, blockHashesTimeout, t)
|
|
test.CheckDuration("BlocksTimeout", c.BlocksTimeout, blocksTimeout, t)
|
|
}
|
|
|
|
func TestBlockPoolOverrideConfig(t *testing.T) {
|
|
test.LogInit()
|
|
blockPool := &BlockPool{Config: &Config{}}
|
|
c := &Config{128, 32, 1, 0, 300 * time.Millisecond, 100 * time.Millisecond, 90 * time.Second, 0}
|
|
|
|
blockPool.Config = c
|
|
blockPool.Start()
|
|
test.CheckInt("BlockHashesBatchSize", c.BlockHashesBatchSize, 128, t)
|
|
test.CheckInt("BlockBatchSize", c.BlockBatchSize, 32, t)
|
|
test.CheckInt("BlocksRequestRepetition", c.BlocksRequestRepetition, blocksRequestRepetition, t)
|
|
test.CheckInt("BlocksRequestMaxIdleRounds", c.BlocksRequestMaxIdleRounds, blocksRequestMaxIdleRounds, t)
|
|
test.CheckDuration("BlockHashesRequestInterval", c.BlockHashesRequestInterval, 300*time.Millisecond, t)
|
|
test.CheckDuration("BlocksRequestInterval", c.BlocksRequestInterval, 100*time.Millisecond, t)
|
|
test.CheckDuration("BlockHashesTimeout", c.BlockHashesTimeout, 90*time.Second, t)
|
|
test.CheckDuration("BlocksTimeout", c.BlocksTimeout, blocksTimeout, t)
|
|
}
|