|
5 | 5 | """Tests governance checks can be skipped for blocks covered by the best chainlock.""" |
6 | 6 |
|
7 | 7 | import json |
8 | | -import time |
9 | 8 |
|
10 | 9 | from test_framework.governance import have_trigger_for_height |
11 | 10 | from test_framework.messages import uint256_to_string |
@@ -136,13 +135,27 @@ def run_test(self): |
136 | 135 | assert not have_trigger_for_height(self.nodes[0:5], sb_block_height + sb_cycle) |
137 | 136 | self.bump_mocktime(156) |
138 | 137 | self.generate(self.nodes[0], 1, sync_fun=lambda: self.sync_blocks(self.nodes[0:5])) |
| 138 | + |
| 139 | + self.log.info("Bump time to trigger governance cleanup") |
139 | 140 | # Trigger scheduler to mark old triggers for deletion |
140 | | - self.bump_mocktime(5 * 60) |
141 | | - # Let it do the job |
142 | | - time.sleep(1) |
| 141 | + delta = 5 * 60 |
| 142 | + self.mocktime += delta |
| 143 | + for node in self.nodes: |
| 144 | + with node.assert_debug_log(expected_msgs=['UpdateCachesAndClean']): |
| 145 | + node.mocktime = self.mocktime |
| 146 | + node.setmocktime(self.mocktime) |
| 147 | + node.mockscheduler(delta) |
143 | 148 | # Move forward to satisfy GOVERNANCE_DELETION_DELAY, should actually remove old triggers now |
144 | | - self.bump_mocktime(10 * 60) |
145 | | - self.wait_until(lambda: len(self.nodes[0].gobject("list", "valid", "triggers")) == 0, timeout=5) |
| 149 | + delta = 10 * 60 |
| 150 | + self.mocktime += delta |
| 151 | + for node in self.nodes: |
| 152 | + with node.assert_debug_log(expected_msgs=['UpdateCachesAndClean -- Governance Objects: 0']): |
| 153 | + node.mocktime = self.mocktime |
| 154 | + node.setmocktime(self.mocktime) |
| 155 | + node.mockscheduler(delta) |
| 156 | + # Confirm in RPC |
| 157 | + for node in self.nodes: |
| 158 | + assert_equal(len(node.gobject("list", "valid", "triggers")), 0) |
146 | 159 |
|
147 | 160 | self.log.info("Reconnect isolated node and confirm the next ChainLock will let it sync") |
148 | 161 | self.reconnect_isolated_node(5, 0) |
|
0 commit comments