From b80c840af33aae1ff99ce9879fecc6161a0c1620 Mon Sep 17 00:00:00 2001 From: gary rong Date: Mon, 22 Jul 2019 20:45:40 +0800 Subject: core, les: fix les unit tests (#19823) --- les/handler.go | 11 ++++++++++- les/handler_test.go | 1 + les/transactions.rlp | 0 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100755 les/transactions.rlp (limited to 'les') diff --git a/les/handler.go b/les/handler.go index 743776bd0..53e2911e4 100644 --- a/les/handler.go +++ b/les/handler.go @@ -85,6 +85,7 @@ type BlockChain interface { type txPool interface { AddRemotes(txs []*types.Transaction) []error + AddRemotesSync(txs []*types.Transaction) []error Status(hashes []common.Hash) []core.TxStatus } @@ -125,6 +126,9 @@ type ProtocolManager struct { // Callbacks synced func() bool + + // Testing fields + addTxsSync bool } // NewProtocolManager returns a new ethereum sub protocol manager. The Ethereum sub protocol manages peers capable @@ -1044,7 +1048,12 @@ func (pm *ProtocolManager) handleMsg(p *peer) error { hash := tx.Hash() stats[i] = pm.txStatus(hash) if stats[i].Status == core.TxStatusUnknown { - if errs := pm.txpool.AddRemotes([]*types.Transaction{tx}); errs[0] != nil { + addFn := pm.txpool.AddRemotes + // Add txs synchronously for testing purpose + if pm.addTxsSync { + addFn = pm.txpool.AddRemotesSync + } + if errs := addFn([]*types.Transaction{tx}); errs[0] != nil { stats[i].Error = errs[0].Error() continue } diff --git a/les/handler_test.go b/les/handler_test.go index 4e16a8979..dae583f6d 100644 --- a/les/handler_test.go +++ b/les/handler_test.go @@ -496,6 +496,7 @@ func TestGetBloombitsProofs(t *testing.T) { func TestTransactionStatusLes2(t *testing.T) { server, tearDown := newServerEnv(t, 0, 2, nil) defer tearDown() + server.pm.addTxsSync = true chain := server.pm.blockchain.(*core.BlockChain) config := core.DefaultTxPoolConfig diff --git a/les/transactions.rlp b/les/transactions.rlp new file mode 100755 index 000000000..e69de29bb -- cgit v1.2.3