diff --git a/core/state/sync_test.go b/core/state/sync_test.go
index deb4b52b4c102181da152ea4379a9e31c390fcd7..9c4867093d1e33f6222994380fae5b805392329e 100644
--- a/core/state/sync_test.go
+++ b/core/state/sync_test.go
@@ -62,7 +62,8 @@ func makeTestState() (Database, common.Hash, []*testAccount) {
 		}
 		if i%5 == 0 {
 			for j := byte(0); j < 5; j++ {
-				obj.SetState(db, crypto.Keccak256Hash([]byte{i, i, i, i, i, j, j}), crypto.Keccak256Hash([]byte{i, i, i, i, i, j, j}))
+				hash := crypto.Keccak256Hash([]byte{i, i, i, i, i, j, j})
+				obj.SetState(db, hash, hash)
 			}
 		}
 		state.updateStateObject(obj)
@@ -401,15 +402,14 @@ func TestIncompleteStateSync(t *testing.T) {
 	// Create a random state to copy
 	srcDb, srcRoot, srcAccounts := makeTestState()
 
-	// isCode reports whether the hash is contract code hash.
-	isCode := func(hash common.Hash) bool {
-		for _, acc := range srcAccounts {
-			if hash == crypto.Keccak256Hash(acc.code) {
-				return true
-			}
+	// isCodeLookup to save some hashing
+	var isCode = make(map[common.Hash]struct{})
+	for _, acc := range srcAccounts {
+		if len(acc.code) > 0 {
+			isCode[crypto.Keccak256Hash(acc.code)] = struct{}{}
 		}
-		return false
 	}
+	isCode[common.BytesToHash(emptyCodeHash)] = struct{}{}
 	checkTrieConsistency(srcDb.TrieDB().DiskDB().(ethdb.Database), srcRoot)
 
 	// Create a destination state and sync with the scheduler
@@ -447,15 +447,13 @@ func TestIncompleteStateSync(t *testing.T) {
 		batch.Write()
 		for _, result := range results {
 			added = append(added, result.Hash)
-		}
-		// Check that all known sub-tries added so far are complete or missing entirely.
-		for _, hash := range added {
-			if isCode(hash) {
+			// Check that all known sub-tries added so far are complete or missing entirely.
+			if _, ok := isCode[result.Hash]; ok {
 				continue
 			}
 			// Can't use checkStateConsistency here because subtrie keys may have odd
 			// length and crash in LeafKey.
-			if err := checkTrieConsistency(dstDb, hash); err != nil {
+			if err := checkTrieConsistency(dstDb, result.Hash); err != nil {
 				t.Fatalf("state inconsistent: %v", err)
 			}
 		}
@@ -466,9 +464,9 @@ func TestIncompleteStateSync(t *testing.T) {
 	// Sanity check that removing any node from the database is detected
 	for _, node := range added[1:] {
 		var (
-			key  = node.Bytes()
-			code = isCode(node)
-			val  []byte
+			key     = node.Bytes()
+			_, code = isCode[node]
+			val     []byte
 		)
 		if code {
 			val = rawdb.ReadCode(dstDb, node)
diff --git a/trie/sync_test.go b/trie/sync_test.go
index 39e0f9575edc77078cc57fe0a4bedd04f7de95ff..cb3283875d6cc7e68a7cb0857a2ea208032d2f00 100644
--- a/trie/sync_test.go
+++ b/trie/sync_test.go
@@ -377,7 +377,6 @@ func TestIncompleteSync(t *testing.T) {
 
 	nodes, _, codes := sched.Missing(1)
 	queue := append(append([]common.Hash{}, nodes...), codes...)
-
 	for len(queue) > 0 {
 		// Fetch a batch of trie nodes
 		results := make([]SyncResult, len(queue))
@@ -401,10 +400,8 @@ func TestIncompleteSync(t *testing.T) {
 		batch.Write()
 		for _, result := range results {
 			added = append(added, result.Hash)
-		}
-		// Check that all known sub-tries in the synced trie are complete
-		for _, root := range added {
-			if err := checkTrieConsistency(triedb, root); err != nil {
+			// Check that all known sub-tries in the synced trie are complete
+			if err := checkTrieConsistency(triedb, result.Hash); err != nil {
 				t.Fatalf("trie inconsistent: %v", err)
 			}
 		}