test: Avoid intermittent timeout in p2p_headers_sync_with_minchainwork.py

This commit is contained in:
MarcoFalke 2024-08-30 12:05:13 +02:00
parent ffdc3d6060
commit fa247e6e8c
No known key found for this signature in database

View File

@ -1,5 +1,5 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# Copyright (c) 2019-2022 The Bitcoin Core developers # Copyright (c) 2019-present The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying # Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php. # file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Test that we reject low difficulty headers to prevent our block tree from filling up with useless bloat""" """Test that we reject low difficulty headers to prevent our block tree from filling up with useless bloat"""
@ -21,6 +21,8 @@ from test_framework.blocktools import (
from test_framework.util import assert_equal from test_framework.util import assert_equal
import time
NODE1_BLOCKS_REQUIRED = 15 NODE1_BLOCKS_REQUIRED = 15
NODE2_BLOCKS_REQUIRED = 2047 NODE2_BLOCKS_REQUIRED = 2047
@ -48,6 +50,10 @@ class RejectLowDifficultyHeadersTest(BitcoinTestFramework):
self.connect_nodes(0, 2) self.connect_nodes(0, 2)
self.connect_nodes(0, 3) self.connect_nodes(0, 3)
def mocktime_all(self, time):
for n in self.nodes:
n.setmocktime(time)
def test_chains_sync_when_long_enough(self): def test_chains_sync_when_long_enough(self):
self.log.info("Generate blocks on the node with no required chainwork, and verify nodes 1 and 2 have no new headers in their headers tree") self.log.info("Generate blocks on the node with no required chainwork, and verify nodes 1 and 2 have no new headers in their headers tree")
with self.nodes[1].assert_debug_log(expected_msgs=["[net] Ignoring low-work chain (height=14)"]), self.nodes[2].assert_debug_log(expected_msgs=["[net] Ignoring low-work chain (height=14)"]), self.nodes[3].assert_debug_log(expected_msgs=["Synchronizing blockheaders, height: 14"]): with self.nodes[1].assert_debug_log(expected_msgs=["[net] Ignoring low-work chain (height=14)"]), self.nodes[2].assert_debug_log(expected_msgs=["[net] Ignoring low-work chain (height=14)"]), self.nodes[3].assert_debug_log(expected_msgs=["Synchronizing blockheaders, height: 14"]):
@ -149,7 +155,9 @@ class RejectLowDifficultyHeadersTest(BitcoinTestFramework):
self.reconnect_all() self.reconnect_all()
self.mocktime_all(int(time.time())) # Temporarily hold time to avoid internal timeouts
self.sync_blocks(timeout=300) # Ensure tips eventually agree self.sync_blocks(timeout=300) # Ensure tips eventually agree
self.mocktime_all(0)
def run_test(self): def run_test(self):