Skip to content

Commit 64e183d

Browse files
committed
Test helper newDeltas with options
1 parent 9d64742 commit 64e183d

File tree

2 files changed

+58
-79
lines changed

2 files changed

+58
-79
lines changed

lib/trie/helpers_test.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,23 @@ func checkMerkleValuesAreSet(t *testing.T, n *Node) {
147147
}
148148
}
149149

150-
func newDeltas(deleted []common.Hash) (deltas *tracking.Deltas) {
150+
type newDeltasOption func(deltas DeltaRecorder)
151+
152+
func setDeleted(nodeHashesHex ...string) newDeltasOption {
153+
return func(deltas DeltaRecorder) {
154+
for _, nodeHashHex := range nodeHashesHex {
155+
nodeHash := common.MustHexToHash(nodeHashHex)
156+
deltas.RecordDeleted(nodeHash)
157+
}
158+
}
159+
}
160+
161+
func newDeltas(options ...newDeltasOption) (deltas *tracking.Deltas) {
151162
deltas = tracking.New()
152-
for _, hash := range deleted {
153-
deltas.RecordDeleted(hash)
163+
164+
for _, option := range options {
165+
option(deltas)
154166
}
167+
155168
return deltas
156169
}

lib/trie/trie_test.go

Lines changed: 42 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ func Test_NewTrie(t *testing.T) {
4646
func Test_Trie_Snapshot(t *testing.T) {
4747
t.Parallel()
4848

49-
emptyDeltas := newDeltas(nil)
50-
setDeltas := newDeltas([]common.Hash{{1}})
49+
emptyDeltas := newDeltas()
50+
setDeltas := newDeltas(setDeleted("0x01"))
5151

5252
trie := &Trie{
5353
generation: 8,
@@ -102,34 +102,34 @@ func Test_Trie_handleTrackedDeltas(t *testing.T) {
102102
"no success and generation 1": {
103103
trie: Trie{
104104
generation: 1,
105-
deltas: newDeltas([]common.Hash{{1}}),
105+
deltas: newDeltas(setDeleted("0x01")),
106106
},
107-
pendingDeltas: newDeltas([]common.Hash{{2}}),
107+
pendingDeltas: newDeltas(setDeleted("0x02")),
108108
expectedTrie: Trie{
109109
generation: 1,
110-
deltas: newDeltas([]common.Hash{{1}}),
110+
deltas: newDeltas(setDeleted("0x01")),
111111
},
112112
},
113113
"success and generation 0": {
114114
trie: Trie{
115-
deltas: newDeltas([]common.Hash{{1}}),
115+
deltas: newDeltas(setDeleted("0x01")),
116116
},
117117
success: true,
118-
pendingDeltas: newDeltas([]common.Hash{{2}}),
118+
pendingDeltas: newDeltas(setDeleted("0x02")),
119119
expectedTrie: Trie{
120-
deltas: newDeltas([]common.Hash{{1}}),
120+
deltas: newDeltas(setDeleted("0x01")),
121121
},
122122
},
123123
"success and generation 1": {
124124
trie: Trie{
125125
generation: 1,
126-
deltas: newDeltas([]common.Hash{{1}}),
126+
deltas: newDeltas(setDeleted("0x01")),
127127
},
128128
success: true,
129-
pendingDeltas: newDeltas([]common.Hash{{1}, {2}}),
129+
pendingDeltas: newDeltas(setDeleted("0x01", "0x02")),
130130
expectedTrie: Trie{
131131
generation: 1,
132-
deltas: newDeltas([]common.Hash{{1}, {2}}),
132+
deltas: newDeltas(setDeleted("0x01", "0x02")),
133133
},
134134
},
135135
}
@@ -196,7 +196,7 @@ func Test_Trie_prepForMutation(t *testing.T) {
196196
trie: Trie{
197197
generation: 2,
198198
},
199-
pendingDeltas: newDeltas(nil),
199+
pendingDeltas: newDeltas(),
200200
currentNode: &Node{
201201
Generation: 1,
202202
Key: []byte{1},
@@ -217,11 +217,8 @@ func Test_Trie_prepForMutation(t *testing.T) {
217217
25, 26, 27, 28, 29, 30, 31, 32},
218218
Dirty: true,
219219
},
220-
copied: true,
221-
expectedPendingDeltas: newDeltas([]common.Hash{{
222-
0x98, 0xfc, 0xd6, 0x6b, 0xa3, 0x12, 0xc2, 0x9e, 0xf1, 0x93, 0x5, 0x2f, 0xd0, 0xc1, 0x4c, 0x6e,
223-
0x38, 0xb1, 0x58, 0xbd, 0x5c, 0x2, 0x35, 0x6, 0x45, 0x94, 0xca, 0xcc, 0x1a, 0xb5, 0x96, 0x5d,
224-
}}),
220+
copied: true,
221+
expectedPendingDeltas: newDeltas(setDeleted("0x98fcd66ba312c29ef193052fd0c14c6e38b158bd5c0235064594cacc1ab5965d")),
225222
},
226223
}
227224

@@ -276,15 +273,10 @@ func Test_Trie_registerDeletedMerkleValue(t *testing.T) {
276273
node: &Node{Dirty: true},
277274
},
278275
"clean root node registered": {
279-
node: someSmallNode,
280-
trie: Trie{root: someSmallNode},
281-
pendingDeltas: newDeltas(nil),
282-
expectedPendingDeltas: newDeltas([]common.Hash{{
283-
0x60, 0x51, 0x6d, 0x0b, 0xb6, 0xe1, 0xbb, 0xfb,
284-
0x12, 0x93, 0xf1, 0xb2, 0x76, 0xea, 0x95, 0x05,
285-
0xe9, 0xf4, 0xa4, 0xe7, 0xd9, 0x8f, 0x62, 0x0d,
286-
0x05, 0x11, 0x5e, 0x0b, 0x85, 0x27, 0x4a, 0xe1,
287-
}}),
276+
node: someSmallNode,
277+
trie: Trie{root: someSmallNode},
278+
pendingDeltas: newDeltas(),
279+
expectedPendingDeltas: newDeltas(setDeleted("0x60516d0bb6e1bbfb1293f1b276ea9505e9f4a4e7d98f620d05115e0b85274ae1")),
288280
expectedTrie: Trie{
289281
root: &Node{
290282
Key: []byte{1},
@@ -313,11 +305,8 @@ func Test_Trie_registerDeletedMerkleValue(t *testing.T) {
313305
17, 18, 19, 20, 21, 22, 23, 24,
314306
25, 26, 27, 28, 29, 30, 31, 32},
315307
},
316-
pendingDeltas: newDeltas(nil),
317-
expectedPendingDeltas: newDeltas([]common.Hash{{
318-
0x98, 0xfc, 0xd6, 0x6b, 0xa3, 0x12, 0xc2, 0x9e, 0xf1, 0x93, 0x5, 0x2f, 0xd0, 0xc1, 0x4c, 0x6e,
319-
0x38, 0xb1, 0x58, 0xbd, 0x5c, 0x2, 0x35, 0x6, 0x45, 0x94, 0xca, 0xcc, 0x1a, 0xb5, 0x96, 0x5d,
320-
}}),
308+
pendingDeltas: newDeltas(),
309+
expectedPendingDeltas: newDeltas(setDeleted("0x98fcd66ba312c29ef193052fd0c14c6e38b158bd5c0235064594cacc1ab5965d")),
321310
},
322311
}
323312

@@ -400,10 +389,10 @@ func Test_Trie_DeepCopy(t *testing.T) {
400389
{1, 2, 3}: {
401390
generation: 2,
402391
root: &Node{Key: []byte{1}, SubValue: []byte{1}},
403-
deltas: newDeltas([]common.Hash{{1}, {2}}),
392+
deltas: newDeltas(setDeleted("0x01", "0x02")),
404393
},
405394
},
406-
deltas: newDeltas([]common.Hash{{1}, {2}}),
395+
deltas: newDeltas(setDeleted("0x01", "0x02")),
407396
},
408397
trieCopy: &Trie{
409398
generation: 1,
@@ -412,10 +401,10 @@ func Test_Trie_DeepCopy(t *testing.T) {
412401
{1, 2, 3}: {
413402
generation: 2,
414403
root: &Node{Key: []byte{1}, SubValue: []byte{1}},
415-
deltas: newDeltas([]common.Hash{{1}, {2}}),
404+
deltas: newDeltas(setDeleted("0x01", "0x02")),
416405
},
417406
},
418-
deltas: newDeltas([]common.Hash{{1}, {2}}),
407+
deltas: newDeltas(setDeleted("0x01", "0x02")),
419408
},
420409
},
421410
}
@@ -1171,7 +1160,7 @@ func Test_Trie_Put(t *testing.T) {
11711160
"trie with key and value": {
11721161
trie: Trie{
11731162
generation: 1,
1174-
deltas: newDeltas(nil),
1163+
deltas: newDeltas(),
11751164
root: &Node{
11761165
Key: []byte{1, 2, 0, 5},
11771166
SubValue: []byte{1},
@@ -1181,12 +1170,7 @@ func Test_Trie_Put(t *testing.T) {
11811170
value: []byte{2},
11821171
expectedTrie: Trie{
11831172
generation: 1,
1184-
deltas: newDeltas([]common.Hash{
1185-
{
1186-
0xa1, 0x95, 0x08, 0x9c, 0x3e, 0x8f, 0x8b, 0x5b, 0x36, 0x97, 0x87, 0x00, 0xad, 0x95, 0x4a, 0xed,
1187-
0x99, 0xe0, 0x84, 0x13, 0xcf, 0xc1, 0xe2, 0xb4, 0xc0, 0x0a, 0x5d, 0x06, 0x4a, 0xbe, 0x66, 0xa9,
1188-
},
1189-
}),
1173+
deltas: newDeltas(setDeleted("0xa195089c3e8f8b5b36978700ad954aed99e08413cfc1e2b4c00a5d064abe66a9")),
11901174
root: &Node{
11911175
Key: []byte{1, 2},
11921176
Generation: 1,
@@ -1772,14 +1756,14 @@ func Test_LoadFromMap(t *testing.T) {
17721756
"nil data": {
17731757
expectedTrie: Trie{
17741758
childTries: map[common.Hash]*Trie{},
1775-
deltas: newDeltas(nil),
1759+
deltas: newDeltas(),
17761760
},
17771761
},
17781762
"empty data": {
17791763
data: map[string]string{},
17801764
expectedTrie: Trie{
17811765
childTries: map[common.Hash]*Trie{},
1782-
deltas: newDeltas(nil),
1766+
deltas: newDeltas(),
17831767
},
17841768
},
17851769
"bad key": {
@@ -1812,7 +1796,7 @@ func Test_LoadFromMap(t *testing.T) {
18121796
Dirty: true,
18131797
},
18141798
childTries: map[common.Hash]*Trie{},
1815-
deltas: newDeltas(nil),
1799+
deltas: newDeltas(),
18161800
},
18171801
},
18181802
"load key values": {
@@ -1842,7 +1826,7 @@ func Test_LoadFromMap(t *testing.T) {
18421826
}),
18431827
},
18441828
childTries: map[common.Hash]*Trie{},
1845-
deltas: newDeltas(nil),
1829+
deltas: newDeltas(),
18461830
},
18471831
},
18481832
}
@@ -3110,29 +3094,23 @@ func Test_Trie_ClearPrefix(t *testing.T) {
31103094
trie: Trie{
31113095
root: &Node{SubValue: []byte{1}},
31123096
generation: 1,
3113-
deltas: newDeltas(nil),
3097+
deltas: newDeltas(),
31143098
},
31153099
expectedTrie: Trie{
31163100
generation: 1,
3117-
deltas: newDeltas([]common.Hash{{
3118-
0xf9, 0x6a, 0x74, 0x15, 0x22, 0xbc, 0xc1, 0x4f, 0x0a, 0xea, 0x2f, 0x70, 0x60, 0x44, 0x52, 0x24,
3119-
0x1d, 0x59, 0xb5, 0xf2, 0xdd, 0xab, 0x9a, 0x69, 0x48, 0xfd, 0xb3, 0xfe, 0xf5, 0xf9, 0x86, 0x43,
3120-
}}),
3101+
deltas: newDeltas(setDeleted("0xf96a741522bcc14f0aea2f70604452241d59b5f2ddab9a6948fdb3fef5f98643")),
31213102
},
31223103
},
31233104
"empty prefix": {
31243105
trie: Trie{
31253106
root: &Node{SubValue: []byte{1}},
31263107
generation: 1,
3127-
deltas: newDeltas(nil),
3108+
deltas: newDeltas(),
31283109
},
31293110
prefix: []byte{},
31303111
expectedTrie: Trie{
31313112
generation: 1,
3132-
deltas: newDeltas([]common.Hash{{
3133-
0xf9, 0x6a, 0x74, 0x15, 0x22, 0xbc, 0xc1, 0x4f, 0x0a, 0xea, 0x2f, 0x70, 0x60, 0x44, 0x52, 0x24,
3134-
0x1d, 0x59, 0xb5, 0xf2, 0xdd, 0xab, 0x9a, 0x69, 0x48, 0xfd, 0xb3, 0xfe, 0xf5, 0xf9, 0x86, 0x43,
3135-
}}),
3113+
deltas: newDeltas(setDeleted("0xf96a741522bcc14f0aea2f70604452241d59b5f2ddab9a6948fdb3fef5f98643")),
31363114
},
31373115
},
31383116
"empty trie": {
@@ -3161,7 +3139,7 @@ func Test_Trie_ClearPrefix(t *testing.T) {
31613139
},
31623140
}),
31633141
},
3164-
deltas: newDeltas(nil),
3142+
deltas: newDeltas(),
31653143
},
31663144
prefix: []byte{0x12, 0x16},
31673145
expectedTrie: Trie{
@@ -3172,10 +3150,7 @@ func Test_Trie_ClearPrefix(t *testing.T) {
31723150
Generation: 1,
31733151
Dirty: true,
31743152
},
3175-
deltas: newDeltas([]common.Hash{{
3176-
0x5f, 0xe1, 0x08, 0xc8, 0x3d, 0x08, 0x32, 0x93, 0x53, 0xd6, 0x91, 0x8e, 0x01, 0x04, 0xda, 0xcc,
3177-
0x9d, 0x21, 0x87, 0xfd, 0x9d, 0xaf, 0xa5, 0x82, 0xd1, 0xc5, 0x32, 0xe5, 0xfe, 0x7b, 0x2e, 0x50,
3178-
}}),
3153+
deltas: newDeltas(setDeleted("0x5fe108c83d08329353d6918e0104dacc9d2187fd9dafa582d1c532e5fe7b2e50")),
31793154
},
31803155
},
31813156
}
@@ -3546,28 +3521,22 @@ func Test_Trie_Delete(t *testing.T) {
35463521
trie: Trie{
35473522
root: &Node{SubValue: []byte{1}},
35483523
generation: 1,
3549-
deltas: newDeltas(nil),
3524+
deltas: newDeltas(),
35503525
},
35513526
expectedTrie: Trie{
35523527
generation: 1,
3553-
deltas: newDeltas([]common.Hash{{
3554-
0xf9, 0x6a, 0x74, 0x15, 0x22, 0xbc, 0xc1, 0x4f, 0x0a, 0xea, 0x2f, 0x70, 0x60, 0x44, 0x52, 0x24,
3555-
0x1d, 0x59, 0xb5, 0xf2, 0xdd, 0xab, 0x9a, 0x69, 0x48, 0xfd, 0xb3, 0xfe, 0xf5, 0xf9, 0x86, 0x43,
3556-
}}),
3528+
deltas: newDeltas(setDeleted("0xf96a741522bcc14f0aea2f70604452241d59b5f2ddab9a6948fdb3fef5f98643")),
35573529
},
35583530
},
35593531
"empty key": {
35603532
trie: Trie{
35613533
root: &Node{SubValue: []byte{1}},
35623534
generation: 1,
3563-
deltas: newDeltas(nil),
3535+
deltas: newDeltas(),
35643536
},
35653537
expectedTrie: Trie{
35663538
generation: 1,
3567-
deltas: newDeltas([]common.Hash{{
3568-
0xf9, 0x6a, 0x74, 0x15, 0x22, 0xbc, 0xc1, 0x4f, 0x0a, 0xea, 0x2f, 0x70, 0x60, 0x44, 0x52, 0x24,
3569-
0x1d, 0x59, 0xb5, 0xf2, 0xdd, 0xab, 0x9a, 0x69, 0x48, 0xfd, 0xb3, 0xfe, 0xf5, 0xf9, 0x86, 0x43,
3570-
}}),
3539+
deltas: newDeltas(setDeleted("0xf96a741522bcc14f0aea2f70604452241d59b5f2ddab9a6948fdb3fef5f98643")),
35713540
},
35723541
},
35733542
"empty trie": {
@@ -3597,7 +3566,7 @@ func Test_Trie_Delete(t *testing.T) {
35973566
},
35983567
}),
35993568
},
3600-
deltas: newDeltas(nil),
3569+
deltas: newDeltas(),
36013570
},
36023571
key: []byte{0x12, 0x16},
36033572
expectedTrie: Trie{
@@ -3622,10 +3591,7 @@ func Test_Trie_Delete(t *testing.T) {
36223591
},
36233592
}),
36243593
},
3625-
deltas: newDeltas([]common.Hash{{
3626-
0x3d, 0x1b, 0x3d, 0x72, 0x7e, 0xe4, 0x04, 0x54, 0x9a, 0x5d, 0x25, 0x31, 0xaa, 0xb9, 0xff, 0xf0,
3627-
0xee, 0xdd, 0xc5, 0x8b, 0xc3, 0x0b, 0xfe, 0x2f, 0xe8, 0x2b, 0x1a, 0x0c, 0xfe, 0x7e, 0x76, 0xd5,
3628-
}}),
3594+
deltas: newDeltas(setDeleted("0x3d1b3d727ee404549a5d2531aab9fff0eeddc58bc30bfe2fe82b1a0cfe7e76d5")),
36293595
},
36303596
},
36313597
}

0 commit comments

Comments
 (0)