From 70de8fb0c147ae0d8e3ad46ddbad9fb8018c17ef Mon Sep 17 00:00:00 2001 From: Guillaume Ballet Date: Wed, 3 Jul 2019 14:08:31 +0200 Subject: [PATCH] Add unit tests covering empty results --- eth/api_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/eth/api_test.go b/eth/api_test.go index a1a520bff0..1ea9780c8d 100644 --- a/eth/api_test.go +++ b/eth/api_test.go @@ -102,6 +102,32 @@ func TestAccountRangeAt(t *testing.T) { } } +func TestEmptyAccountRangeAt(t *testing.T) { + var ( + statedb = state.NewDatabase(rawdb.NewMemoryDatabase()) + state, _ = state.New(common.Hash{}, statedb) + ) + + state.Commit(true) + root := state.IntermediateRoot(true) + + trie, err := statedb.OpenTrie(root) + if err != nil { + t.Fatal(err) + } + + results, err := accountRange(trie, &common.Hash{0x0}, AccountRangeMaxResults) + if err != nil { + t.Fatalf("Empty results should not trigger an error: %v", err) + } + if results.Next != common.HexToHash("0") { + t.Fatalf("Empty results should not return a second page") + } + if len(results.Addresses) != 0 { + t.Fatalf("Empty state should not return addresses: %v", results.Addresses) + } +} + func TestStorageRangeAt(t *testing.T) { // Create a state where account 0x010000... has a few storage entries. var (