Skip to content

Commit 2c20e87

Browse files
committed
suggestions
1 parent 239ebf7 commit 2c20e87

22 files changed

+66
-86
lines changed

test/functional/feature_asset_locks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ def test_withdrawal_limits(self, node_wallet, node, pubkey):
607607
def test_mn_rr(self, node_wallet, node, pubkey):
608608
self.log.info("Activate mn_rr...")
609609
locked = self.get_credit_pool_balance()
610-
self.generate(node, 12 - node.getblockcount() % 12)
610+
self.generate(node, 12 - node.getblockcount() % 12, sync_fun=self.no_op)
611611
self.activate_mn_rr(expected_activation_height=node.getblockcount() + 12 * 3)
612612
self.log.info(f'height: {node.getblockcount()} credit: {self.get_credit_pool_balance()}')
613613
assert_equal(locked, self.get_credit_pool_balance())

test/functional/feature_dip3_deterministicmns.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def start_controller_node(self):
4949
def run_test(self):
5050
self.log.info("funding controller node")
5151
while self.nodes[0].getbalance() < (self.num_initial_mn + 3) * 1000:
52-
self.generate(self.nodes[0], 10) # generate enough for collaterals
52+
self.generate(self.nodes[0], 10, sync_fun=self.no_op) # generate enough for collaterals
5353
self.log.info("controller node has {} dash".format(self.nodes[0].getbalance()))
5454

5555
# Make sure we're below block 135 (which activates dip3)
@@ -65,11 +65,11 @@ def run_test(self):
6565
mns.append(before_dip3_mn)
6666

6767
# block 150 starts enforcing DIP3 MN payments
68-
self.generate(self.nodes[0], 150 - self.nodes[0].getblockcount())
68+
self.generate(self.nodes[0], 150 - self.nodes[0].getblockcount(), sync_fun=self.no_op)
6969
assert self.nodes[0].getblockcount() == 150
7070

7171
self.log.info("mining final block for DIP3 activation")
72-
self.generate(self.nodes[0], 1)
72+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
7373

7474
# We have hundreds of blocks to sync here, give it more time
7575
self.log.info("syncing blocks for all nodes")
@@ -239,7 +239,7 @@ def create_mn_collateral(self, node, mn):
239239
mn.collateral_address = node.getnewaddress()
240240
mn.collateral_txid = node.sendtoaddress(mn.collateral_address, 1000)
241241
mn.collateral_vout = None
242-
self.generate(node, 1)
242+
self.generate(node, 1, sync_fun=self.no_op)
243243

244244
rawtx = node.getrawtransaction(mn.collateral_txid, 1)
245245
for txout in rawtx['vout']:
@@ -271,7 +271,7 @@ def register_mn(self, node, mn):
271271
mn.rewards_address = node.getnewaddress()
272272

273273
mn.protx_hash = node.protx('register', mn.collateral_txid, mn.collateral_vout, '127.0.0.1:%d' % mn.p2p_port, mn.ownerAddr, mn.operatorAddr, mn.votingAddr, mn.operator_reward, mn.rewards_address, mn.fundsAddr)
274-
self.generate(node, 1)
274+
self.generate(node, 1, sync_fun=self.no_op)
275275

276276
def start_mn(self, mn):
277277
if len(self.nodes) <= mn.idx:
@@ -305,7 +305,7 @@ def test_protx_update_service(self, mn):
305305

306306
# undo
307307
self.nodes[0].protx('update_service', mn.protx_hash, '127.0.0.1:%d' % mn.p2p_port, mn.blsMnkey, "", mn.fundsAddr)
308-
self.generate(self.nodes[0], 1)
308+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
309309

310310
def assert_mnlists(self, mns):
311311
for node in self.nodes:

test/functional/feature_dip3_v19.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def run_test(self):
9090

9191
evo_info_0 = self.dynamically_add_masternode(evo=True, rnd=7)
9292
assert evo_info_0 is not None
93-
self.generate(self.nodes[0], 8, sync_fun=lambda: self.sync_blocks(self.nodes))
93+
self.generate(self.nodes[0], 8, sync_fun=lambda: self.sync_blocks())
9494

9595
self.log.info("Checking that protxs with duplicate EvoNodes fields are rejected")
9696
evo_info_1 = self.dynamically_add_masternode(evo=True, rnd=7, should_be_rejected=True)
@@ -100,7 +100,7 @@ def run_test(self):
100100
assert evo_info_2 is None
101101
evo_info_3 = self.dynamically_add_masternode(evo=True, rnd=9)
102102
assert evo_info_3 is not None
103-
self.generate(self.nodes[0], 8, sync_fun=lambda: self.sync_blocks(self.nodes))
103+
self.generate(self.nodes[0], 8, sync_fun=lambda: self.sync_blocks())
104104
self.dynamically_evo_update_service(evo_info_0, 9, should_be_rejected=True)
105105

106106
revoke_protx = self.mninfo[-1].proTxHash
@@ -128,12 +128,12 @@ def test_revoke_protx(self, node_idx, revoke_protx, revoke_keyoperator):
128128
funds_address = self.nodes[0].getnewaddress()
129129
fund_txid = self.nodes[0].sendtoaddress(funds_address, 1)
130130
self.wait_for_instantlock(fund_txid, self.nodes[0])
131-
tip = self.generate(self.nodes[0], 1, sync_fun=lambda: self.sync_all(self.nodes))[0]
131+
tip = self.generate(self.nodes[0], 1, sync_fun=lambda: self.sync_all())[0]
132132
assert_equal(self.nodes[0].getrawtransaction(fund_txid, 1, tip)['confirmations'], 1)
133133

134134
protx_result = self.nodes[0].protx('revoke', revoke_protx, revoke_keyoperator, 1, funds_address)
135135
self.wait_for_instantlock(protx_result, self.nodes[0])
136-
tip = self.generate(self.nodes[0], 1)[0]
136+
tip = self.generate(self.nodes[0], 1, sync_fun=self.no_op)[0]
137137
assert_equal(self.nodes[0].getrawtransaction(protx_result, 1, tip)['confirmations'], 1)
138138
# Revoking a MN results in disconnects. Wait for disconnects to actually happen
139139
# and then reconnect the corresponding node back to let sync_blocks finish correctly.

test/functional/feature_dip4_coinbasemerkleroots.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def run_test(self):
9191
#############################
9292
# Now start testing quorum commitment merkle roots
9393

94-
self.generate(self.nodes[0], 1)
94+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
9595
oldhash = self.nodes[0].getbestblockhash()
9696

9797
# Test DIP8 activation once with a pre-existing quorum and once without (we don't know in which order it will activate on mainnet)

test/functional/feature_governance.py

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -89,17 +89,15 @@ def run_test(self):
8989
assert_equal(len(self.nodes[0].gobject("list-prepared")), 0)
9090

9191
self.log.info("Check 1st superblock before v20")
92-
self.generate(self.nodes[0], 3)
9392
self.bump_mocktime(3)
94-
self.sync_blocks()
93+
self.generate(self.nodes[0], 3, sync_fun=self.sync_blocks())
9594
assert_equal(self.nodes[0].getblockcount(), 130)
9695
assert_equal(self.nodes[0].getblockchaininfo()["softforks"]["v20"]["active"], False)
9796
self.check_superblockbudget(False)
9897

9998
self.log.info("Check 2nd superblock before v20")
100-
self.generate(self.nodes[0], 10)
10199
self.bump_mocktime(10)
102-
self.sync_blocks()
100+
self.generate(self.nodes[0], 10, sync_fun=self.sync_blocks())
103101
assert_equal(self.nodes[0].getblockcount(), 140)
104102
assert_equal(self.nodes[0].getblockchaininfo()["softforks"]["v20"]["active"], False)
105103
self.check_superblockbudget(False)
@@ -117,9 +115,8 @@ def run_test(self):
117115
p1_collateral_prepare = prepare_object(self.nodes[0], 1, uint256_to_string(0), proposal_time, 1, "Proposal_1", self.p1_amount, self.p1_payout_address)
118116
p2_collateral_prepare = prepare_object(self.nodes[0], 1, uint256_to_string(0), proposal_time, 1, "Proposal_2", self.p2_amount, self.p2_payout_address)
119117

120-
self.generate(self.nodes[0], 6)
121118
self.bump_mocktime(6)
122-
self.sync_blocks()
119+
self.generate(self.nodes[0], 6, sync_fun=self.sync_blocks())
123120

124121
assert_equal(len(self.nodes[0].gobject("list-prepared")), 3)
125122
assert_equal(len(self.nodes[0].gobject("list")), 0)
@@ -165,9 +162,8 @@ def run_test(self):
165162
self.log.info("v20 is expected to be activate since block 160")
166163
assert block_count + n < 160
167164
for _ in range(n - 1):
168-
self.generate(self.nodes[0], 1)
169165
self.bump_mocktime(1)
170-
self.sync_blocks()
166+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
171167
self.check_superblockbudget(False)
172168

173169
assert_equal(len(self.nodes[0].gobject("list", "valid", "triggers")), 0)
@@ -193,8 +189,8 @@ def run_test(self):
193189
isolated = self.nodes[payee_idx]
194190

195191
self.log.info("Move 1 block inside the Superblock maturity window on the isolated node")
196-
self.generate(isolated, 1, sync_fun=self.no_op)
197192
self.bump_mocktime(1)
193+
self.generate(isolated, 1, sync_fun=self.no_op)
198194
self.log.info("The isolated 'winner' should submit new trigger and vote for it")
199195
self.wait_until(lambda: len(isolated.gobject("list", "valid", "triggers")) == 1, timeout=5)
200196
isolated_trigger_hash = list(isolated.gobject("list", "valid", "triggers").keys())[0]
@@ -203,8 +199,8 @@ def run_test(self):
203199
assert_equal(more_votes, False)
204200

205201
self.log.info("Move 1 block enabling the Superblock maturity window on non-isolated nodes")
206-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
207202
self.bump_mocktime(1)
203+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
208204
assert_equal(self.nodes[0].getblockcount(), 150)
209205
assert_equal(self.nodes[0].getblockchaininfo()["softforks"]["v20"]["active"], False)
210206
self.check_superblockbudget(False)
@@ -214,8 +210,8 @@ def run_test(self):
214210
assert_equal(has_trigger, False)
215211

216212
self.log.info("Move 1 block inside the Superblock maturity window on non-isolated nodes")
217-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
218213
self.bump_mocktime(1)
214+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
219215

220216
self.log.info("There is now new 'winner' who should submit new trigger and vote for it")
221217
self.wait_until(lambda: len(self.nodes[0].gobject("list", "valid", "triggers")) == 1, timeout=5)
@@ -232,8 +228,8 @@ def run_test(self):
232228
assert(amount_str in payment_amounts_expected)
233229

234230
self.log.info("Move another block inside the Superblock maturity window on non-isolated nodes")
235-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
236231
self.bump_mocktime(1)
232+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
237233

238234
self.log.info("Every non-isolated MN should vote for the same trigger now, no new triggers should be created")
239235
self.wait_until(lambda: list(self.nodes[0].gobject("list", "valid", "triggers").values())[0]['YesCount'] == self.mn_count - 1, timeout=5)
@@ -268,9 +264,8 @@ def sync_gov(node):
268264
assert_equal(more_triggers, False)
269265

270266
self.log.info("Move another block inside the Superblock maturity window")
271-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
272267
self.bump_mocktime(1)
273-
self.sync_blocks()
268+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
274269

275270
self.log.info("Should see NO votes on both triggers now")
276271
self.wait_until(lambda: self.nodes[0].gobject("list", "valid", "triggers")[winning_trigger_hash]['NoCount'] == 1, timeout=5)
@@ -284,9 +279,8 @@ def sync_gov(node):
284279

285280
self.log.info("Move another block inside the Superblock maturity window")
286281
with self.nodes[1].assert_debug_log(["CGovernanceManager::VoteGovernanceTriggers"]):
287-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
288282
self.bump_mocktime(1)
289-
self.sync_blocks()
283+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
290284

291285
self.log.info("Vote count should not change even though MNs are allowed to vote again")
292286
assert_equal(before, self.nodes[1].gobject("count")["votes"])
@@ -298,9 +292,8 @@ def sync_gov(node):
298292

299293
self.log.info("Move remaining n blocks until actual Superblock")
300294
for i in range(n):
301-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
302295
self.bump_mocktime(1)
303-
self.sync_blocks()
296+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
304297
# comparing to 159 because bip9 forks are active when the tip is one block behind the activation height
305298
self.check_superblockbudget(block_count + i + 1 >= 159)
306299

@@ -310,9 +303,8 @@ def sync_gov(node):
310303
self.log.info("Move a few block past the recent superblock height and make sure we have no new votes")
311304
for _ in range(5):
312305
with self.nodes[1].assert_debug_log("", [f"Voting NO-FUNDING for trigger:{winning_trigger_hash} success"]):
313-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
314306
self.bump_mocktime(1)
315-
self.sync_blocks()
307+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
316308
# Votes on both triggers should NOT change
317309
assert_equal(self.nodes[0].gobject("list", "valid", "triggers")[winning_trigger_hash]['NoCount'], 1)
318310
assert_equal(self.nodes[0].gobject("list", "valid", "triggers")[isolated_trigger_hash]['NoCount'], self.mn_count - 1)
@@ -322,31 +314,27 @@ def sync_gov(node):
322314

323315
self.log.info("Move remaining n blocks until the next Superblock")
324316
for _ in range(n - 1):
325-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
326317
self.bump_mocktime(1)
327-
self.sync_blocks()
318+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
328319
self.log.info("Wait for new trigger and votes")
329320
self.wait_until(lambda: have_trigger_for_height(self.nodes, 180))
330321
self.log.info("Mine superblock")
331-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
332322
self.bump_mocktime(1)
333-
self.sync_blocks()
323+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
334324
assert_equal(self.nodes[0].getblockcount(), 180)
335325
assert_equal(self.nodes[0].getblockchaininfo()["softforks"]["v20"]["active"], True)
336326

337327
self.log.info("Mine and check a couple more superblocks")
338328
for i in range(2):
339329
for _ in range(sb_cycle - 1):
340-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
341330
self.bump_mocktime(1)
342-
self.sync_blocks()
331+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
343332
# Wait for new trigger and votes
344333
sb_block_height = 180 + (i + 1) * sb_cycle
345334
self.wait_until(lambda: have_trigger_for_height(self.nodes, sb_block_height))
346335
# Mine superblock
347-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
348336
self.bump_mocktime(1)
349-
self.sync_blocks()
337+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
350338
assert_equal(self.nodes[0].getblockcount(), sb_block_height)
351339
assert_equal(self.nodes[0].getblockchaininfo()["softforks"]["v20"]["active"], True)
352340
self.check_superblockbudget(True)

test/functional/feature_governance_cl.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,7 @@ def run_test(self):
8383
p1_collateral_prepare = self.prepare_object(1, uint256_to_string(0), proposal_time, 1, "Proposal_1", self.p1_amount, self.p1_payout_address)
8484
self.bump_mocktime(60 * 10 + 1)
8585

86-
self.generate(self.nodes[0], 6, sync_fun=self.no_op)
87-
self.bump_mocktime(6 * 156)
88-
self.sync_blocks()
86+
self.generate(self.nodes[0], 6, sync_fun=self.sync_blocks())
8987

9088
assert_equal(len(self.nodes[0].gobject("list-prepared")), 2)
9189
assert_equal(len(self.nodes[0].gobject("list")), 0)
@@ -158,10 +156,9 @@ def run_test(self):
158156
self.log.info("Reconnect isolated node and confirm the next ChainLock will let it sync")
159157
self.reconnect_isolated_node(5, 0)
160158
assert_equal(self.nodes[5].mnsync("status")["IsSynced"], False)
161-
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
162159
# NOTE: bumping mocktime too much after recent reconnect can result in "timeout downloading block"
163160
self.bump_mocktime(1)
164-
self.sync_blocks()
161+
self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks())
165162

166163

167164
if __name__ == '__main__':

test/functional/feature_llmq_connections.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def run_test(self):
4444
self.wait_for_sporks_same()
4545

4646
self.log.info("mining one block and waiting for all members to connect to each other")
47-
self.generate(self.nodes[0], 1)
47+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
4848
for mn in self.get_quorum_masternodes(q):
4949
self.wait_for_mnauth(mn.node, 4)
5050

test/functional/feature_llmq_data_recovery.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ def restart_mn(self, mn, reindex=False, qvvec_sync=None, qdata_recovery_enabled=
4646
self.connect_nodes(mn.node.index, 0)
4747
if qdata_recovery_enabled:
4848
# trigger recovery threads and wait for them to start
49-
self.generate(self.nodes[0], 1)
49+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
5050

5151
self.bump_mocktime(self.quorum_data_thread_request_timeout_seconds + 1)
5252
time.sleep(1)
@@ -177,14 +177,14 @@ def run_test(self):
177177
self.test_mns(llmq_test_v17, quorum_hash_recover, valid_mns=[last_resort_v17], all_mns=member_mns_recover_v17)
178178
# If recovery would be enabled it would trigger after the mocktime bump / mined block
179179
self.bump_mocktime(self.quorum_data_request_expiration_timeout + 1)
180-
self.generate(node, 1)
180+
self.generate(node, 1, sync_fun=self.no_op)
181181
time.sleep(10)
182182
# Make sure they are still invalid
183183
self.test_mns(llmq_test, quorum_hash_recover, valid_mns=[last_resort_test], all_mns=member_mns_recover_test)
184184
self.test_mns(llmq_test_v17, quorum_hash_recover, valid_mns=[last_resort_v17], all_mns=member_mns_recover_v17)
185185
# Mining a block should not result in a chainlock now because the responsible quorum shouldn't have enough
186186
# valid members.
187-
self.wait_for_chainlocked_block(node, self.generate(node, 1)[0], False, 5)
187+
self.wait_for_chainlocked_block(node, self.generate(node, 1, sync_fun=self.no_op)[0], False, 5)
188188
# Now restart with recovery enabled
189189
self.restart_mns(mns=recover_members, exclude=exclude_members, reindex=True, qdata_recovery_enabled=True)
190190
# Validate that all invalid members recover. Note: recover=True leads to mocktime bumps and mining while waiting

test/functional/feature_llmq_evo.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def run_test(self):
9393
for i in range(self.evo_count):
9494
evo_info = self.dynamically_add_masternode(evo=True)
9595
evo_protxhash_list.append(evo_info.proTxHash)
96-
self.generate(self.nodes[0], 8, sync_fun=lambda: self.sync_blocks(self.nodes))
96+
self.generate(self.nodes[0], 8, sync_fun=lambda: self.sync_blocks())
9797

9898
expectedUpdated.append(evo_info.proTxHash)
9999
b_i = self.nodes[0].getbestblockhash()
@@ -169,7 +169,7 @@ def test_evo_payments(self, window_analysis, mnrr_active=False):
169169
current_evo = None
170170
consecutive_payments = 0
171171

172-
self.generate(self.nodes[0], 1)
172+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
173173
if i % 8 == 0:
174174
self.sync_blocks()
175175

@@ -218,7 +218,6 @@ def test_evo_is_rejected_before_v19(self):
218218
outputs = {collateral_address: collateral_amount, funds_address: 1}
219219
collateral_txid = self.nodes[0].sendmany("", outputs)
220220
self.generate(self.nodes[0], 8)
221-
self.sync_all(self.nodes)
222221

223222
rawtx = self.nodes[0].getrawtransaction(collateral_txid, 1)
224223
collateral_vout = 0

test/functional/feature_llmq_is_cl_conflicts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def run_test(self):
7171
self.mine_cycle_quorum(llmq_type_name='llmq_test_dip0024', llmq_type=103)
7272

7373
# mine single block, wait for chainlock
74-
self.generate(self.nodes[0], 1)
74+
self.generate(self.nodes[0], 1, sync_fun=self.no_op)
7575
self.wait_for_chainlocked_block_all_nodes(self.nodes[0].getbestblockhash())
7676

7777
self.test_chainlock_overrides_islock(False)

0 commit comments

Comments
 (0)