From 5245bd7b20192071cac5477168dc6735abd35c6c Mon Sep 17 00:00:00 2001 From: obscuren Date: Tue, 9 Jun 2015 00:41:47 +0200 Subject: core: added a test for missing nonces This test showed the logic in the queue was slightly flawed sending out transactions to its peer it couldn't even resolve itself. --- core/transaction_pool_test.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'core/transaction_pool_test.go') diff --git a/core/transaction_pool_test.go b/core/transaction_pool_test.go index ac297d266..b8bf78f00 100644 --- a/core/transaction_pool_test.go +++ b/core/transaction_pool_test.go @@ -201,3 +201,26 @@ func TestTransactionDoubleNonce(t *testing.T) { t.Error("expected 2 pending txs. Got", len(pool.pending)) } } + +func TestMissingNonce(t *testing.T) { + pool, key := setupTxPool() + addr := crypto.PubkeyToAddress(key.PublicKey) + pool.currentState().AddBalance(addr, big.NewInt(100000000000000)) + tx := transaction() + tx.AccountNonce = 1 + tx.GasLimit = big.NewInt(100000) + tx.SignECDSA(key) + + err := pool.add(tx) + if err != nil { + t.Error("didn't expect error", err) + } + + if len(pool.pending) != 0 { + t.Error("expected 0 pending transactions, got", len(pool.pending)) + } + + if len(pool.queue[addr]) != 1 { + t.Error("expected 1 queued transaction, got", len(pool.queue[addr])) + } +} -- cgit v1.2.3