@@ -31,8 +31,8 @@ func TestInsertSameLeafNoExpired(t *testing.T) {
3131 t .Fatalf ("expected value %x, got %x" , testValue , leaf.values [oneKeyTest [StemSize ]])
3232 }
3333
34- if leaf .lastPeriod != period1 {
35- t .Fatalf ("expected last accessed to be 1, got %d" , leaf .lastPeriod )
34+ if leaf .period != period1 {
35+ t .Fatalf ("expected last accessed to be 1, got %d" , leaf .period )
3636 }
3737}
3838
@@ -58,8 +58,8 @@ func TestInsertSameLeafExpired(t *testing.T) {
5858 t .Fatalf ("expected value %x, got %x" , testValue , leaf.values [zeroKeyTest [StemSize ]])
5959 }
6060
61- if leaf .lastPeriod != period0 {
62- t .Fatalf ("expected last accessed to be 0, got %d" , leaf .lastPeriod )
61+ if leaf .period != period0 {
62+ t .Fatalf ("expected last accessed to be 0, got %d" , leaf .period )
6363 }
6464}
6565
@@ -93,12 +93,12 @@ func TestInsertDiffLeaf(t *testing.T) {
9393 t .Fatalf ("expected value %x, got %x" , testValue , leaff.values [ffx32KeyTest [StemSize ]])
9494 }
9595
96- if leaf0 .lastPeriod != period0 {
97- t .Fatalf ("expected last accessed to be 0, got %d" , leaf0 .lastPeriod )
96+ if leaf0 .period != period0 {
97+ t .Fatalf ("expected last accessed to be 0, got %d" , leaf0 .period )
9898 }
9999
100- if leaff .lastPeriod != period2 {
101- t .Fatalf ("expected last accessed to be 2, got %d" , leaff .lastPeriod )
100+ if leaff .period != period2 {
101+ t .Fatalf ("expected last accessed to be 2, got %d" , leaff .period )
102102 }
103103}
104104
@@ -115,7 +115,7 @@ func TestInsertExpiredLeafSibling(t *testing.T) {
115115 t .Fatalf ("expected leaf node, got %T" , root .(* InternalNode ).children [0 ])
116116 }
117117
118- root .(* InternalNode ).children [0 ] = NewExpiredLeafNode (leaf .stem , leaf .lastPeriod , leaf . commitment )
118+ root .(* InternalNode ).children [0 ] = NewExpiredLeafNode (leaf .stem , leaf .commitment )
119119
120120 if err := root .Insert (forkOneKeyTest , testValue , period2 , nil ); err != nil {
121121 t .Fatalf ("error inserting: %v" , err )
@@ -163,8 +163,8 @@ func TestGetNoExpired(t *testing.T) {
163163 t .Fatalf ("expected value %x, got %x" , testValue , val )
164164 }
165165
166- if leaf .lastPeriod != period0 {
167- t .Fatalf ("expected last accessed to be 0, got %d" , leaf .lastPeriod )
166+ if leaf .period != period0 {
167+ t .Fatalf ("expected last accessed to be 0, got %d" , leaf .period )
168168 }
169169}
170170
@@ -190,8 +190,8 @@ func TestGetExpired(t *testing.T) {
190190 t .Fatalf ("expected leaf node, got %T" , root .(* InternalNode ).children [0 ])
191191 }
192192
193- if leaf .lastPeriod != period0 {
194- t .Fatalf ("expected last accessed to be 0, got %d" , leaf .lastPeriod )
193+ if leaf .period != period0 {
194+ t .Fatalf ("expected last accessed to be 0, got %d" , leaf .period )
195195 }
196196}
197197
@@ -231,8 +231,28 @@ func TestDelLeafExpired(t *testing.T) {
231231 t .Fatalf ("expected empty node, got %T" , root .(* InternalNode ).children [0 ])
232232 }
233233
234- if leaf .lastPeriod != period0 {
235- t .Fatalf ("expected last accessed to be 0, got %d" , leaf .lastPeriod )
234+ if leaf .period != period0 {
235+ t .Fatalf ("expected last accessed to be 0, got %d" , leaf .period )
236+ }
237+ }
238+
239+ func TestUpdatePeriod (t * testing.T ) {
240+ values := make ([][]byte , NodeWidth )
241+ values [0 ] = testValue
242+ leaf1 , err := NewLeafNode (zeroKeyTest , values , period1 )
243+ if err != nil {
244+ t .Fatalf ("error creating leaf node: %v" , err )
245+ }
246+
247+ leaf1 .updatePeriod (period2 )
248+
249+ leaf2 , err := NewLeafNode (zeroKeyTest , values , period2 )
250+ if err != nil {
251+ t .Fatalf ("error creating leaf node: %v" , err )
252+ }
253+
254+ if ! leaf1 .Commitment ().Equal (leaf2 .Commitment ()) {
255+ t .Fatalf ("expected commitment to be %x, got %x" , leaf1 .Commitment (), leaf2 .Commitment ())
236256 }
237257}
238258
@@ -244,25 +264,30 @@ func TestReviveExpired(t *testing.T) {
244264 t .Fatalf ("error inserting: %v" , err )
245265 }
246266
247- leaf , ok := root .(* InternalNode ).children [0 ].(* LeafNode )
248- if ! ok {
249- t .Fatalf ("expected leaf node, got %T" , root .(* InternalNode ).children [0 ])
250- }
251-
252- expiredLeaf := NewExpiredLeafNode (leaf .stem , leaf .lastPeriod , leaf .commitment )
267+ leaf := root .(* InternalNode ).children [0 ].(* LeafNode )
268+ expiredLeaf := NewExpiredLeafNode (leaf .stem , new (Point ).Set (leaf .commitment ))
269+ expiredLeaf .setDepth (1 )
253270 root .(* InternalNode ).children [0 ] = expiredLeaf
254271
255- if err := root .Revive (leaf .stem , leaf .values , leaf .lastPeriod , period2 , false , nil ); err != nil {
272+ if err := root .Revive (leaf .stem , leaf .values , leaf .period , period2 , false , nil ); err != nil {
256273 t .Fatalf ("error reviving: %v" , err )
257274 }
275+ comm1 := root .Commit ()
258276
259- rLeaf , ok := root .(* InternalNode ).children [0 ].(* LeafNode )
260- if ! ok {
261- t .Fatalf ("expected leaf node, got %T" , root .(* InternalNode ).children [0 ])
277+ rLeaf := root .(* InternalNode ).children [0 ].(* LeafNode )
278+ if rLeaf .period != period2 {
279+ t .Fatalf ("expected last accessed to be 2, got %d" , rLeaf .period )
280+ }
281+
282+ // Create a new root and insert the same key-value with the post-revive period
283+ root2 := New ()
284+ if err := root2 .Insert (zeroKeyTest , testValue , period2 , nil ); err != nil {
285+ t .Fatalf ("error inserting: %v" , err )
262286 }
287+ comm2 := root2 .Commit ()
263288
264- if rLeaf . lastPeriod != period2 {
265- t .Fatalf ("expected last accessed to be 2 , got %d " , rLeaf . lastPeriod )
289+ if ! comm1 . Equal ( comm2 ) {
290+ t .Fatalf ("expected commitment to be %x , got %x " , comm1 , comm2 )
266291 }
267292}
268293
@@ -281,7 +306,7 @@ func TestReviveNoExpired(t *testing.T) {
281306
282307 comm := root .Commit ()
283308
284- if err := root .Revive (leaf .stem , leaf .values , leaf .lastPeriod , period0 , false , nil ); err != nil {
309+ if err := root .Revive (leaf .stem , leaf .values , leaf .period , period0 , false , nil ); err != nil {
285310 t .Fatalf ("error reviving: %v" , err )
286311 }
287312
@@ -290,8 +315,8 @@ func TestReviveNoExpired(t *testing.T) {
290315 t .Fatalf ("expected leaf node, got %T" , root .(* InternalNode ).children [0 ])
291316 }
292317
293- if rLeaf .lastPeriod != period0 {
294- t .Fatalf ("expected last accessed to be 0, got %d" , rLeaf .lastPeriod )
318+ if rLeaf .period != period0 {
319+ t .Fatalf ("expected last accessed to be 0, got %d" , rLeaf .period )
295320 }
296321
297322 rComm := root .Commit ()
@@ -316,7 +341,7 @@ func TestRootCommitExpired(t *testing.T) {
316341 var init Point
317342 init .Set (root .Commit ())
318343
319- expiredLeaf := NewExpiredLeafNode (leaf .stem , leaf .lastPeriod , leaf . commitment )
344+ expiredLeaf := NewExpiredLeafNode (leaf .stem , leaf .commitment )
320345 root .(* InternalNode ).children [0 ] = expiredLeaf
321346
322347 comm := root .Commit ()
@@ -343,4 +368,4 @@ func TestRootCommitDiffEpoch(t *testing.T) {
343368 if comm1 .Equal (comm2 ) {
344369 t .Fatalf ("expected different commitments, got %x" , comm1 )
345370 }
346- }
371+ }
0 commit comments