From 3a080e5cb4dbf2a7429615a1a556cf293f04e0bd Mon Sep 17 00:00:00 2001 From: Ho Date: Thu, 9 Feb 2023 21:14:10 +0800 Subject: [PATCH] test(zktrie): add `TestZkTrieDelete` (#201) update zktrie for deletion fix Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> --- trie/zk_trie_test.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/trie/zk_trie_test.go b/trie/zk_trie_test.go index dc1923e052..50ccf560cd 100644 --- a/trie/zk_trie_test.go +++ b/trie/zk_trie_test.go @@ -223,3 +223,38 @@ func BenchmarkZkTrieUpdate(b *testing.B) { } b.StopTimer() } + +func TestZkTrieDelete(t *testing.T) { + key := make([]byte, 32) + value := make([]byte, 32) + trie1 := newEmptyZkTrie() + + var count int = 6 + var hashes []common.Hash + hashes = append(hashes, trie1.Hash()) + for i := 0; i < count; i++ { + binary.LittleEndian.PutUint64(key, uint64(i)) + binary.LittleEndian.PutUint64(value, uint64(i)) + err := trie1.TryUpdate(key, value) + assert.NoError(t, err) + hashes = append(hashes, trie1.Hash()) + } + + // binary.LittleEndian.PutUint64(key, uint64(0xffffff)) + // err := trie1.TryDelete(key) + // assert.Equal(t, err, zktrie.ErrKeyNotFound) + + trie1.Commit(nil) + + for i := count - 1; i >= 0; i-- { + + binary.LittleEndian.PutUint64(key, uint64(i)) + v, err := trie1.TryGet(key) + assert.NoError(t, err) + assert.NotEmpty(t, v) + err = trie1.TryDelete(key) + assert.NoError(t, err) + hash := trie1.Hash() + assert.Equal(t, hashes[i].Hex(), hash.Hex()) + } +}