aboutsummaryrefslogtreecommitdiff
path: root/test/functional/feature_init.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/feature_init.py')
-rwxr-xr-xtest/functional/feature_init.py41
1 files changed, 3 insertions, 38 deletions
diff --git a/test/functional/feature_init.py b/test/functional/feature_init.py
index 4b56b0c26b..dbd71a8b2d 100755
--- a/test/functional/feature_init.py
+++ b/test/functional/feature_init.py
@@ -3,8 +3,6 @@
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
"""Stress tests related to node initialization."""
-import random
-import time
import os
from pathlib import Path
@@ -26,7 +24,6 @@ class InitStressTest(BitcoinTestFramework):
def run_test(self):
"""
- test terminating initialization after seeing a certain log line.
- - test terminating init after seeing a random number of log lines.
- test removing certain essential files to test startup error paths.
"""
# TODO: skip Windows for now since it isn't clear how to SIGTERM.
@@ -76,46 +73,14 @@ class InitStressTest(BitcoinTestFramework):
for terminate_line in lines_to_terminate_after:
self.log.info(f"Starting node and will exit after line '{terminate_line}'")
- node.start(extra_args=['-txindex=1'])
-
- num_total_logs = node.wait_for_debug_log([terminate_line], ignore_case=True)
- self.log.debug(f"Terminating node after {num_total_logs} log lines seen")
+ with node.wait_for_debug_log([terminate_line], ignore_case=True):
+ node.start(extra_args=['-txindex=1'])
+ self.log.debug("Terminating node after terminate line was found")
sigterm_node()
check_clean_start()
self.stop_node(0)
- self.log.info(
- f"Terminate at some random point in the init process (max logs: {num_total_logs})")
-
- for _ in range(40):
- num_logs = len(Path(node.debug_log_path).read_text().splitlines())
- additional_lines = random.randint(1, num_total_logs)
- self.log.debug(f"Starting node and will exit after {additional_lines} lines")
- node.start(extra_args=['-txindex=1'])
- logfile = open(node.debug_log_path, 'rb')
-
- MAX_SECS_TO_WAIT = 10
- start = time.time()
- num_lines = 0
-
- while True:
- line = logfile.readline()
- if line:
- num_lines += 1
-
- if num_lines >= (num_logs + additional_lines) or \
- (time.time() - start) > MAX_SECS_TO_WAIT:
- self.log.debug(f"Terminating node after {num_lines} log lines seen")
- sigterm_node()
- break
-
- if node.process.poll() is not None:
- raise AssertionError("node failed to start")
-
- check_clean_start()
- self.stop_node(0)
-
self.log.info("Test startup errors after removing certain essential files")
files_to_disturb = {