diff --git a/test/functional/feature_governance.py b/test/functional/feature_governance.py index 82025d06d6cdc..c57738e7ed873 100755 --- a/test/functional/feature_governance.py +++ b/test/functional/feature_governance.py @@ -349,12 +349,18 @@ def sync_gov(node): assert_equal(self.nodes[0].gobject("list", "valid", "triggers")[isolated_trigger_hash]['NoCount'], self.mn_count - 1) block_count = self.nodes[0].getblockcount() - n = sb_cycle - block_count % sb_cycle + n = sb_immaturity_window - block_count % sb_cycle + assert n > 0 - self.log.info("Move remaining n blocks until the next Superblock") - for _ in range(n - 1): + self.log.info("Move remaining n blocks until the next maturity window") + self.bump_mocktime(n) + self.generate(self.nodes[0], n, sync_fun=self.sync_blocks()) + + self.log.info("Move inside maturity window until the next Superblock") + for _ in range(sb_maturity_window - 1): self.bump_mocktime(1) self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks()) + self.wait_until(lambda: have_trigger_for_height(self.nodes, 180), timeout=1, do_assert=False) self.log.info("Wait for new trigger and votes") self.wait_until(lambda: have_trigger_for_height(self.nodes, 180)) self.log.info("Mine superblock") @@ -365,11 +371,14 @@ def sync_gov(node): self.log.info("Mine and check a couple more superblocks") for i in range(2): - for _ in range(sb_cycle - 1): + sb_block_height = 180 + (i + 1) * sb_cycle + self.bump_mocktime(sb_immaturity_window) + self.generate(self.nodes[0], sb_immaturity_window, sync_fun=self.sync_blocks()) + for _ in range(sb_maturity_window - 1): self.bump_mocktime(1) self.generate(self.nodes[0], 1, sync_fun=self.sync_blocks()) + self.wait_until(lambda: have_trigger_for_height(self.nodes, sb_block_height), timeout=1, do_assert=False) # Wait for new trigger and votes - sb_block_height = 180 + (i + 1) * sb_cycle self.wait_until(lambda: have_trigger_for_height(self.nodes, sb_block_height)) # Mine superblock self.bump_mocktime(1)