From dd4e957dcdfc971a4a971995ff2db9fb787d23c3 Mon Sep 17 00:00:00 2001 From: Vasil Dimov Date: Mon, 11 Jan 2021 17:25:40 +0100 Subject: [PATCH] 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. --- test/functional/rpc_setban.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/functional/rpc_setban.py b/test/functional/rpc_setban.py index fd5f8aa0983..e91ed3b0452 100755 --- a/test/functional/rpc_setban.py +++ b/test/functional/rpc_setban.py @@ -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()