@@ -190,18 +190,20 @@ BOOST_FIXTURE_TEST_SUITE(versionbits_tests, TestingSetup)
190
190
BOOST_AUTO_TEST_CASE(versionbits_test)
191
191
{
192
192
for (int i = 0 ; i < 64 ; i++) {
193
- // DEFINED -> FAILED
193
+ // DEFINED -> STARTED after timeout reached -> FAILED
194
194
VersionBitsTester ().TestDefined ().TestStateSinceHeight (0 )
195
195
.Mine (1 , TestTime (1 ), 0x100 ).TestDefined ().TestStateSinceHeight (0 )
196
196
.Mine (11 , TestTime (11 ), 0x100 ).TestDefined ().TestStateSinceHeight (0 )
197
197
.Mine (989 , TestTime (989 ), 0x100 ).TestDefined ().TestStateSinceHeight (0 )
198
- .Mine (999 , TestTime (20000 ), 0x100 ).TestDefined ().TestStateSinceHeight (0 )
199
- .Mine (1000 , TestTime (20000 ), 0x100 ).TestFailed ().TestStateSinceHeight (1000 )
200
- .Mine (1999 , TestTime (30001 ), 0x100 ).TestFailed ().TestStateSinceHeight (1000 )
201
- .Mine (2000 , TestTime (30002 ), 0x100 ).TestFailed ().TestStateSinceHeight (1000 )
202
- .Mine (2001 , TestTime (30003 ), 0x100 ).TestFailed ().TestStateSinceHeight (1000 )
203
- .Mine (2999 , TestTime (30004 ), 0x100 ).TestFailed ().TestStateSinceHeight (1000 )
204
- .Mine (3000 , TestTime (30005 ), 0x100 ).TestFailed ().TestStateSinceHeight (1000 )
198
+ .Mine (999 , TestTime (20000 ), 0x100 ).TestDefined ().TestStateSinceHeight (0 ) // Timeout and start time reached simultaneously
199
+ .Mine (1000 , TestTime (20000 ), 0 ).TestStarted ().TestStateSinceHeight (1000 ) // Hit started, stop signalling
200
+ .Mine (1999 , TestTime (30001 ), 0 ).TestStarted ().TestStateSinceHeight (1000 )
201
+ .Mine (2000 , TestTime (30002 ), 0x100 ).TestFailed ().TestStateSinceHeight (2000 ) // Hit failed, start signalling again
202
+ .Mine (2001 , TestTime (30003 ), 0x100 ).TestFailed ().TestStateSinceHeight (2000 )
203
+ .Mine (2999 , TestTime (30004 ), 0x100 ).TestFailed ().TestStateSinceHeight (2000 )
204
+ .Mine (3000 , TestTime (30005 ), 0x100 ).TestFailed ().TestStateSinceHeight (2000 )
205
+ .Mine (4000 , TestTime (30006 ), 0x100 ).TestFailed ().TestStateSinceHeight (2000 )
206
+
205
207
// DEFINED -> STARTED -> FAILED
206
208
.Reset ().TestDefined ().TestStateSinceHeight (0 )
207
209
.Mine (1 , TestTime (1 ), 0 ).TestDefined ().TestStateSinceHeight (0 )
@@ -212,19 +214,19 @@ BOOST_AUTO_TEST_CASE(versionbits_test)
212
214
.Mine (3000 , TestTime (20000 ), 0 ).TestFailed ().TestStateSinceHeight (3000 ) // 50 old blocks (so 899 out of the past 1000)
213
215
.Mine (4000 , TestTime (20010 ), 0x100 ).TestFailed ().TestStateSinceHeight (3000 )
214
216
215
- // DEFINED -> STARTED -> FAILED while threshold reached
217
+ // DEFINED -> STARTED -> LOCKEDIN after timeout reached -> ACTIVE
216
218
.Reset ().TestDefined ().TestStateSinceHeight (0 )
217
219
.Mine (1 , TestTime (1 ), 0 ).TestDefined ().TestStateSinceHeight (0 )
218
220
.Mine (1000 , TestTime (10000 ) - 1 , 0x101 ).TestDefined ().TestStateSinceHeight (0 ) // One second more and it would be defined
219
221
.Mine (2000 , TestTime (10000 ), 0x101 ).TestStarted ().TestStateSinceHeight (2000 ) // So that's what happens the next period
220
222
.Mine (2999 , TestTime (30000 ), 0x100 ).TestStarted ().TestStateSinceHeight (2000 ) // 999 new blocks
221
- .Mine (3000 , TestTime (30000 ), 0x100 ).TestFailed ().TestStateSinceHeight (3000 ) // 1 new block (so 1000 out of the past 1000 are new)
222
- .Mine (3999 , TestTime (30001 ), 0 ).TestFailed ().TestStateSinceHeight (3000 )
223
- .Mine (4000 , TestTime (30002 ), 0 ).TestFailed ().TestStateSinceHeight (3000 )
224
- .Mine (14333 , TestTime (30003 ), 0 ).TestFailed ().TestStateSinceHeight (3000 )
225
- .Mine (24000 , TestTime (40000 ), 0 ).TestFailed ().TestStateSinceHeight (3000 )
223
+ .Mine (3000 , TestTime (30000 ), 0x100 ).TestLockedIn ().TestStateSinceHeight (3000 ) // 1 new block (so 1000 out of the past 1000 are new)
224
+ .Mine (3999 , TestTime (30001 ), 0 ).TestLockedIn ().TestStateSinceHeight (3000 )
225
+ .Mine (4000 , TestTime (30002 ), 0 ).TestActiveDelayed ().TestStateSinceHeight (4000 , 3000 )
226
+ .Mine (14333 , TestTime (30003 ), 0 ).TestActiveDelayed ().TestStateSinceHeight (4000 , 3000 )
227
+ .Mine (24000 , TestTime (40000 ), 0 ).TestActive ().TestStateSinceHeight (4000 , 15000 )
226
228
227
- // DEFINED -> STARTED -> LOCKEDIN at the last minute -> ACTIVE
229
+ // DEFINED -> STARTED -> LOCKEDIN before timeout -> ACTIVE
228
230
.Reset ().TestDefined ()
229
231
.Mine (1 , TestTime (1 ), 0 ).TestDefined ().TestStateSinceHeight (0 )
230
232
.Mine (1000 , TestTime (10000 ) - 1 , 0x101 ).TestDefined ().TestStateSinceHeight (0 ) // One second more and it would be defined
@@ -247,8 +249,10 @@ BOOST_AUTO_TEST_CASE(versionbits_test)
247
249
.Mine (3000 , TestTime (10000 ), 0 ).TestStarted ().TestStateSinceHeight (3000 )
248
250
.Mine (4000 , TestTime (10000 ), 0 ).TestStarted ().TestStateSinceHeight (3000 )
249
251
.Mine (5000 , TestTime (10000 ), 0 ).TestStarted ().TestStateSinceHeight (3000 )
252
+ .Mine (5999 , TestTime (20000 ), 0 ).TestStarted ().TestStateSinceHeight (3000 )
250
253
.Mine (6000 , TestTime (20000 ), 0 ).TestFailed ().TestStateSinceHeight (6000 )
251
254
.Mine (7000 , TestTime (20000 ), 0x100 ).TestFailed ().TestStateSinceHeight (6000 )
255
+ .Mine (24000 , TestTime (20000 ), 0x100 ).TestFailed ().TestStateSinceHeight (6000 ) // stay in FAILED no matter how much we signal
252
256
;
253
257
}
254
258
}
0 commit comments