Changeset View
Changeset View
Standalone View
Standalone View
test/functional/feature_abortnode.py
Show All 26 Lines | def setup_network(self): | ||||
self.setup_nodes() | self.setup_nodes() | ||||
# We'll connect the nodes later | # We'll connect the nodes later | ||||
def run_test(self): | def run_test(self): | ||||
self.generate(self.nodes[0], 3, sync_fun=self.no_op) | self.generate(self.nodes[0], 3, sync_fun=self.no_op) | ||||
datadir = get_datadir_path(self.options.tmpdir, 0) | datadir = get_datadir_path(self.options.tmpdir, 0) | ||||
# Deleting the undo file will result in reorg failure | # Deleting the undo file will result in reorg failure | ||||
os.unlink(os.path.join(datadir, self.chain, 'blocks', 'rev00000.dat')) | os.unlink(os.path.join(datadir, self.chain, "blocks", "rev00000.dat")) | ||||
# Connecting to a node with a more work chain will trigger a reorg | # Connecting to a node with a more work chain will trigger a reorg | ||||
# attempt. | # attempt. | ||||
self.generate(self.nodes[1], 3, sync_fun=self.no_op) | self.generate(self.nodes[1], 3, sync_fun=self.no_op) | ||||
with self.nodes[0].assert_debug_log(["Failed to disconnect block"]): | with self.nodes[0].assert_debug_log(["Failed to disconnect block"]): | ||||
self.connect_nodes(0, 1) | self.connect_nodes(0, 1) | ||||
self.generate(self.nodes[1], 1, sync_fun=self.no_op) | self.generate(self.nodes[1], 1, sync_fun=self.no_op) | ||||
# Check that node0 aborted | # Check that node0 aborted | ||||
self.log.info("Waiting for crash") | self.log.info("Waiting for crash") | ||||
self.nodes[0].wait_until_stopped(timeout=200) | self.nodes[0].wait_until_stopped(timeout=200) | ||||
self.log.info("Node crashed - now verifying restart fails") | self.log.info("Node crashed - now verifying restart fails") | ||||
self.nodes[0].assert_start_raises_init_error() | self.nodes[0].assert_start_raises_init_error() | ||||
if __name__ == '__main__': | if __name__ == "__main__": | ||||
AbortNodeTest().main() | AbortNodeTest().main() |