def run_test(self):
    self.log.info('Warning! This test requires 4GB of disk space')
    self.log.info('Mining a big blockchain of 995 blocks')
    self.create_big_chain()
    self.stop_node(3)
    self.stop_node(4)
    self.log.info("Check that we haven't started pruning yet because we're below PruneAfterHeight")
    self.test_height_min()
    self.log.info("Check that we'll exceed disk space target if we have a very high stale block rate")
    self.create_chain_with_staleblocks()
    self.mainchainheight = self.nodes[2].getblockcount()
    self.mainchainhash2 = self.nodes[2].getblockhash(self.mainchainheight)
    self.log.info('Check that we can survive a 288 block reorg still')
    self.reorg_test()
    self.log.info('Test that we can rerequest a block we previously pruned if needed for a reorg')
    self.reorg_back()
    self.log.info('Test manual pruning with block indices')
    self.manual_test(3, use_timestamp=False)
    self.log.info('Test manual pruning with timestamps')
    self.manual_test(4, use_timestamp=True)
    self.log.info('Test wallet re-scan')
    self.wallet_test()
    self.log.info('Test invalid pruning command line options')
    self.test_invalid_command_line_options()
    self.log.info('Done')
def run_test(self):
    self.log.info('Warning! This test requires 4GB of disk space')
    self.log.info('Mining a big blockchain of 995 blocks')
    self.create_big_chain()
    self.stop_node(3)
    self.stop_node(4)
    self.log.info("Check that we haven't started pruning yet because we're below PruneAfterHeight")
    self.test_height_min()
    self.log.info("Check that we'll exceed disk space target if we have a very high stale block rate")
    self.create_chain_with_staleblocks()
    self.mainchainheight = self.nodes[2].getblockcount()
    self.mainchainhash2 = self.nodes[2].getblockhash(self.mainchainheight)
    self.log.info('Check that we can survive a 288 block reorg still')
    self.reorg_test()
    self.log.info('Test that we can rerequest a block we previously pruned if needed for a reorg')
    self.reorg_back()
    self.log.info('Test manual pruning with block indices')
    self.manual_test(3, use_timestamp=False)
    self.log.info('Test manual pruning with timestamps')
    self.manual_test(4, use_timestamp=True)
    self.log.info('Test wallet re-scan')
    self.wallet_test()
    self.log.info('Test invalid pruning command line options')
    self.test_invalid_command_line_options()
    self.log.info('Done')