diff options
Diffstat (limited to 'test/functional/feature_addrman.py')
-rwxr-xr-x | test/functional/feature_addrman.py | 20 |
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: |