diff options
author | zelig <viktor.tron@gmail.com> | 2015-03-30 22:21:41 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2015-04-01 19:32:42 +0800 |
commit | 6ffea34d8bf19fb358c1a7f01e20bf25f1061c5e (patch) | |
tree | 7a8b1a60915ef36b66a36ccaacc62b2f7db4f878 /eth/protocol_test.go | |
parent | 82da6bf4d213784cfc7ba45432f9f96c2d6b4d9d (diff) | |
download | dexon-6ffea34d8bf19fb358c1a7f01e20bf25f1061c5e.tar.gz dexon-6ffea34d8bf19fb358c1a7f01e20bf25f1061c5e.tar.zst dexon-6ffea34d8bf19fb358c1a7f01e20bf25f1061c5e.zip |
check TxMsg
- add validation on TxMsg checking for nil
- add test for nil transaction
- add test for zero value transaction (no extra validation needed)
Diffstat (limited to 'eth/protocol_test.go')
-rw-r--r-- | eth/protocol_test.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/eth/protocol_test.go b/eth/protocol_test.go index 6a8eedadd..2228fa0ec 100644 --- a/eth/protocol_test.go +++ b/eth/protocol_test.go @@ -359,3 +359,42 @@ func TestBlockMsg(t *testing.T) { eth.checkError(ErrDecode, delay) } + +func TestTransactionsMsg(t *testing.T) { + logInit() + eth := newEth(t) + txs := make(chan *types.Transaction) + + eth.txPool.addTransactions = func(t []*types.Transaction) { + for _, tx := range t { + txs <- tx + } + } + go eth.run() + + eth.handshake(t, true) + err := p2p.ExpectMsg(eth, TxMsg, []interface{}{}) + if err != nil { + t.Errorf("transactions expected, got %v", err) + } + + var delay = 3 * time.Second + tx := &types.Transaction{} + + go p2p.Send(eth, TxMsg, []interface{}{tx, tx}) + timer := time.After(delay) + for i := int64(0); i < 2; i++ { + select { + case <-txs: + case <-timer: + return + case err := <-eth.quit: + t.Errorf("no error expected, got %v", err) + return + } + } + + go p2p.Send(eth, TxMsg, []interface{}{[]interface{}{}}) + eth.checkError(ErrDecode, delay) + +} |