aboutsummaryrefslogtreecommitdiff
path: root/test/functional/feature_addrman.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/feature_addrman.py')
-rwxr-xr-xtest/functional/feature_addrman.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/test/functional/feature_addrman.py b/test/functional/feature_addrman.py
index 14a4f8abb7..5e49d0214a 100755
--- a/test/functional/feature_addrman.py
+++ b/test/functional/feature_addrman.py
@@ -68,18 +68,28 @@ class AddrmanTest(BitcoinTestFramework):
self.start_node(0, extra_args=["-checkaddrman=1"])
assert_equal(self.nodes[0].getnodeaddresses(), [])
- self.log.info("Check that addrman from future cannot be read")
+ self.log.info("Check that addrman with negative lowest_compatible cannot be read")
self.stop_node(0)
- write_addrman(peers_dat, lowest_compatible=111)
+ write_addrman(peers_dat, lowest_compatible=-32)
self.nodes[0].assert_start_raises_init_error(
expected_msg=init_error(
- "Unsupported format of addrman database: 1. It is compatible with "
- "formats >=111, but the maximum supported by this version of "
- f"{self.config['environment']['PACKAGE_NAME']} is 4.: (.+)"
+ "Corrupted addrman database: The compat value \\(0\\) is lower "
+ "than the expected minimum value 32.: (.+)"
),
match=ErrorMatch.FULL_REGEX,
)
+ self.log.info("Check that addrman from future is overwritten with new addrman")
+ self.stop_node(0)
+ write_addrman(peers_dat, lowest_compatible=111)
+ assert_equal(os.path.exists(peers_dat + ".bak"), False)
+ with self.nodes[0].assert_debug_log([
+ f'Creating new peers.dat because the file version was not compatible ("{peers_dat}"). Original backed up to peers.dat.bak',
+ ]):
+ self.start_node(0)
+ assert_equal(self.nodes[0].getnodeaddresses(), [])
+ assert_equal(os.path.exists(peers_dat + ".bak"), True)
+
self.log.info("Check that corrupt addrman cannot be read (EOF)")
self.stop_node(0)
with open(peers_dat, "wb") as f: