Changeset View
Changeset View
Standalone View
Standalone View
test/functional/feature_blocksdir.py
#!/usr/bin/env python3 | #!/usr/bin/env python3 | ||||
# Copyright (c) 2018 The Bitcoin Core developers | # Copyright (c) 2018 The Bitcoin Core developers | ||||
# Distributed under the MIT software license, see the accompanying | # Distributed under the MIT software license, see the accompanying | ||||
# file COPYING or http://www.opensource.org/licenses/mit-license.php. | # file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
"""Test the blocksdir option. | """Test the blocksdir option. | ||||
""" | """ | ||||
import os | import os | ||||
import re | |||||
import shutil | import shutil | ||||
from test_framework.test_framework import BitcoinTestFramework, initialize_datadir | from test_framework.test_framework import BitcoinTestFramework, initialize_datadir | ||||
class BlocksdirTest(BitcoinTestFramework): | class BlocksdirTest(BitcoinTestFramework): | ||||
def set_test_params(self): | def set_test_params(self): | ||||
self.setup_clean_chain = True | self.setup_clean_chain = True | ||||
self.num_nodes = 1 | self.num_nodes = 1 | ||||
def run_test(self): | def run_test(self): | ||||
self.stop_node(0) | self.stop_node(0) | ||||
assert os.path.isdir(os.path.join( | assert os.path.isdir(os.path.join( | ||||
self.nodes[0].datadir, "regtest", "blocks")) | self.nodes[0].datadir, "regtest", "blocks")) | ||||
assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "blocks")) | assert not os.path.isdir(os.path.join(self.nodes[0].datadir, "blocks")) | ||||
shutil.rmtree(self.nodes[0].datadir) | shutil.rmtree(self.nodes[0].datadir) | ||||
initialize_datadir(self.options.tmpdir, 0) | initialize_datadir(self.options.tmpdir, 0) | ||||
self.log.info("Starting with nonexistent blocksdir ...") | self.log.info("Starting with nonexistent blocksdir ...") | ||||
blocksdir_path = os.path.join(self.options.tmpdir, 'blocksdir') | blocksdir_path = os.path.join(self.options.tmpdir, 'blocksdir') | ||||
self.nodes[0].assert_start_raises_init_error(["-blocksdir=" + blocksdir_path], re.escape( | self.nodes[0].assert_start_raises_init_error( | ||||
'Error: Specified blocks directory "{}" does not exist.'.format(blocksdir_path))) | ["-blocksdir=" + blocksdir_path], 'Error: Specified blocks directory "{}" does not exist.'.format(blocksdir_path)) | ||||
os.mkdir(blocksdir_path) | os.mkdir(blocksdir_path) | ||||
self.log.info("Starting with existing blocksdir ...") | self.log.info("Starting with existing blocksdir ...") | ||||
self.start_node(0, ["-blocksdir=" + blocksdir_path]) | self.start_node(0, ["-blocksdir=" + blocksdir_path]) | ||||
self.log.info("mining blocks..") | self.log.info("mining blocks..") | ||||
self.nodes[0].generate(10) | self.nodes[0].generate(10) | ||||
assert os.path.isfile(os.path.join( | assert os.path.isfile(os.path.join( | ||||
blocksdir_path, "regtest", "blocks", "blk00000.dat")) | blocksdir_path, "regtest", "blocks", "blk00000.dat")) | ||||
assert os.path.isdir(os.path.join( | assert os.path.isdir(os.path.join( | ||||
self.nodes[0].datadir, "regtest", "blocks", "index")) | self.nodes[0].datadir, "regtest", "blocks", "index")) | ||||
if __name__ == '__main__': | if __name__ == '__main__': | ||||
BlocksdirTest().main() | BlocksdirTest().main() |