test: ensure banlist can be read from disk after restart

With `banlist.dat` (being written in addrv1 format) if we would try to
write a Tor v3 subnet, it would serialize as a dummy-all-0s IPv6
address and subsequently, when deserialized will not result in the same
subnet.

This problem does not exist with `banlist.json` where the data is saved
in textual, human-readable form.
This commit is contained in:
Vasil Dimov 2021-01-11 17:25:40 +01:00
parent d197977ae2
commit dd4e957dcd
No known key found for this signature in database
GPG Key ID: 54DF06F64B55CBBF

View File

@ -51,12 +51,24 @@ class SetBanTests(BitcoinTestFramework):
ip_addr = "1.2.3.4"
assert(not self.is_banned(node, tor_addr))
assert(not self.is_banned(node, ip_addr))
node.setban(tor_addr, "add")
assert(self.is_banned(node, tor_addr))
assert(not self.is_banned(node, ip_addr))
self.log.info("Test the ban list is preserved through restart")
self.restart_node(1)
assert(self.is_banned(node, tor_addr))
assert(not self.is_banned(node, ip_addr))
node.setban(tor_addr, "remove")
assert(not self.is_banned(self.nodes[1], tor_addr))
assert(not self.is_banned(node, ip_addr))
self.restart_node(1)
assert(not self.is_banned(node, tor_addr))
assert(not self.is_banned(node, ip_addr))
if __name__ == '__main__':
SetBanTests().main()